题目:【小学生算数(carry)】(进网站好像要注册号)
代码:
#include<bits/stdc++.h>
using namespace std;
const long long N=1e6+5;
char x[N],y[N];
int lena,lenb,lenc,an[N],bn[N],cn[N],i=1,z=0,sum[100001];
int main()
{
while(1){
cin>>x>>y;
lena=strlen(x);
lenb=strlen(y);
for(int i=1;i<=lena;i++)
an[i]=x[lena-i]-'0';
for(int i=1;i<=lenb;i++)
bn[i]=y[lenb-i]-'0';
if(an[lena]==0&&bn[lenb]==0)
break;
/*for(int i=1;i<=lena;i++)
cout<<an[lena];*/
lenc=1;
while(lena>=lenc||lenb>=lenc)
{
cn[lenc]=an[lenc]+bn[lenc]+z;
if(cn[lenc]>=10)
sum[i]++;
z=cn[lenc]/10;
cn[lenc]%=10;
lenc++;
}
i++;
}
for(int j=1;j<i;j++)
cout<<sum[j]<<endl;
}