社区讨论
沉迷高精无法自拔
学术版参与者 9已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @mi7yaxd1
- 此快照首次捕获于
- 2025/11/21 05:36 4 个月前
- 此快照最后确认于
- 2025/11/21 06:42 4 个月前
求助
CPP#include<bits/stdc++.h>
using namespace std;
const static long long blen=10000;
struct lint{
typedef long long ll;
vector<int>s;
int V=1;
ll w=0;
lint operator +(lint &x){
if(x.w>w) return x+*this;
lint tt;
ll i=w,tmp,x1,x2,j=w-x.w;
//if(V==-1&&x.V==1) return x-*this;
//if(V==1&&x.V==-1) return *this-x;
tt.s.push_back(0);
while(i>=0) {
x1=w>i?s[i]:0;
x2=x.w>i-j&&i-j>=0?x.s[i-j]:0;
tt.s.push_back(x1+x2);
i--;
}
i=w;
while(i>=0) {
if(tt.s[i]>=10) tt.s[i-1]+=tt.s[i]/10,tt.s[i]%=10;
i--;
}
tt.w=tt.s.size();
return tt;
}
void write(){
if(w==1&&s[0]==0||s.empty()) {
putchar('0');
return;
}
if(V==-1) putchar('-');
long long i=w-1,F=0;
while(s[i]==0&&i<w) i++;
while(i>=0) {
putchar(s[i]+'0');i--;
}
return;
}
int read() {
char t;
if((t=getchar())==EOF) return 0;
s.clear();
V=1;
w=0;
while(t&&(isdigit(t)||t=='-'||t=='+')) {
if((t=='+'||t=='-')&&w!=0) break;
if(t=='-') V*=-1;
else w++,s.push_back(t-'0');
t=getchar();
}
return t!=EOF;
}
};
int main(void)
{
lint a,b,c;
a.read();
b.read();
(a+b).write();
return 0;
}
回复
共 11 条回复,欢迎继续交流。
正在加载回复...