HDOJ 1002

来源:互联网 发布:尚学堂 java架构师 编辑:程序博客网 时间:2024/05/27 09:48

点击打开链接


读入用字符串,然后保存到数组里面(从后面往前存),然后利用数组每一位进行相加,输出时候要逆向输出


#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;}