1002 A + B Problem II

来源:互联网 发布:网络信贷业务员好做吗 编辑:程序博客网 时间:2024/05/16 04:55
#include<iostream>#include<algorithm>using namespace std;int a[1002];int b[1002];int c[1002];int Min(int a,int b){    return a<=b?a:b;}int Max(int a,int b){    return a>=b?a:b;}int main(void){    int count;    cin>>count;    string s1;    string s2;    int min;    int max;    for(int j=0;j<count;j++)    {        cin>>s1>>s2;        cout<<"Case "<<j+1<<":"<<endl;        cout<<s1<<" + "<<s2<<" = ";        reverse(s1.begin(),s1.end());        reverse(s2.begin(),s2.end());        for(int i=0;i<s1.length();i++)        {            a[i]=s1[i]-48;        }        for(int i=0;i<s2.length();i++)        {            b[i]=s2[i]-48;        }        min=Min(s1.length(),s2.length());        max=Max(s1.length(),s2.length());        for(int i=0;i<=max;i++)        {            c[i]=0;        }        for(int i=0;i<min;i++)        {            c[i]+=(a[i]+b[i]);            if(c[i]>=10)            {                c[i+1]++;                c[i]-=10;            }        }        if(min==s1.length())        {            for(int i=min;i<max;i++)            {                c[i]+=b[i];                if(c[i]>=10)                {                    c[i+1]++;                    c[i]-=10;                }            }        }        else        {            for(int i=min;i<max;i++)            {                c[i]+=a[i];                if(c[i]>=10)                {                    c[i+1]++;                    c[i]-=10;                }            }        }        if(c[max]==1)        {            cout<<1;        }        for(int i=max-1;i>=0;i--)        {            cout<<c[i];        }        cout<<endl;        if(j!=count-1)        {            cout<<endl;        }    }    return 0;}


 

原创粉丝点击