zt17 @ 2023-01-30 16:51:01
#include <bits/stdc++.h>
using namespace std;
int a1[10001],b1[10001],c1[10001];
int main()
{
string a,b;
cin >> a;
cin >> b;
for(int i=0;i<a.size();i++)
a1[10001-a.size()+i] = int(a[i]) - 48;
for(int i=0;i<b.size();i++)
b1[10001-b.size()+i] = int(b[i]) - 48;
for(int i=10000;i>0;i--)
c1[i] = a1[i]+b1[i],c1[i-1]+=c1[i]/10,c1[i]=c1[i]%10;
int csize = max(a.size(),b.size());
if(c1[10000-csize-1] != 0) csize++;
for(int i=c1[10000-csize];i<=10000;i++)
cout << c1[i];
return 0;
}
Input:
1
1
Output
0000000000000000000000000......0002
by olegekei @ 2023-01-30 16:57:27
@Justin123_
如果怕前导 0,你可以:
for(int i=1;i<=10000;i++)
if(c1[i]){
for(;i<=10000;i++)cout << c1[i];
}
by zt17 @ 2023-01-30 16:59:07
@olegekei 谢,学到了
by olegekei @ 2023-01-30 17:00:30
@Justin123_
另外你代码前导 0 的错误原因是最后一个循环 i 的初值为 c1[10000-csize],猜测你是想把 i 的初值设为 10000-csize