读入用字符串,然后保存到数组里面(从后面往前存),然后利用数组每一位进行相加,输出时候要逆向输出
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; int main() { int t,len,s; int l1,l2; int j,k; int sum[1010],a[1010],b[1010]; string str1,str2; char ch='0'; cin>>t; for(int i=1;i<=t;i++){ cin>>str1>>str2; l1=str1.size(); l2=str2.size(); memset(sum,0,sizeof(sum)); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(k=0,j=l1-1;j>=0;j--) a[j]=str1[k++]-48; for(k=0,j=l2-1;j>=0;j--) b[j]=str2[k++]-48; len=0; int max=l1>l2?l1:l2; for(j=0,k=0;j<max&&k<max;j++,k++,len++){ sum[len]+=(a[j]+b[k]); if(sum[len]>=10){ sum[len]=sum[len]%10; sum[len+1]++; } } cout<<"Case "<<i<<":"<<endl; for(j=l1-1;j>=0;j--) cout<<a[j]; cout<<" + "; for(j=l2-1;j>=0;j--) cout<<b[j]; cout<<" = "; for(j=len-1;j>=0;j--) cout<<sum[j]; cout<<endl; if(i!=t) cout<<endl; } return 0; }