大数相加
两个不超过100位的大数相加
输入:
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
输出:
2222222222222222222222222222222222222222
#include<stdio.h> #include<string.h> int main() { char a[100]={'0'},b[100]={'0'}; while(~scanf("%s%s",a,b)) { int i; int lena=strlen(a),lenb=strlen(b),j,s[110]={0}; for(i=0,j=lena-1;i<=j;i++,j--){int t=a[i]-'0';a[i]=a[j]-'0';a[j]=t;} for(i=0,j=lenb-1;i<=j;i++,j--){int t=b[i]-'0';b[i]=b[j]-'0';b[j]=t;} int c=0,k; for(i=0;i<100;i++) { k=a[i]+b[i]+c; s[i]=k%10; c=k/10; } for(i=100;s[i]==0;i--); for(j=i;j>=0;j--) printf("%d",s[j]); printf("\n"); } return 0; }