hdu1002 求大数和

来源:互联网 发布:淘宝店铺如何刷信誉 编辑:程序博客网 时间:2024/06/05 00:24
#include<iostream>using namespace std;int main(){    int t;    cin>>t;    for(int j=0;j<t;j++)    {        cout<<"Case "<<j+1<<":"<<endl;        string a="";        string b="";        cin>>a>>b;        string c;        int flag=0;        int len=a.length()>b.length()?b.length():a.length();//选最小长度        /*求公共部分和*/        for(int i=a.length()-1,k=b.length()-1,n=0;n<len;i--,k--,n++)        {            if(a[i]-'0'+b[k]-'0'+flag>9)            {                c+=(a[i]-'0'+b[k]-'0'+flag)%10+'0';                flag=1;            }            else{                c+=(a[i]-'0'+b[k]-'0'+flag)+'0';                 flag=0;            }        }        //将较长的数字的多余部分加到和中        if(len==b.length())        {            for(int i=a.length()-len-1;i>=0;i--)            {                if(a[i]+flag-'0'>9)                {                    c+='0';                    flag=1;                }else{                c+=a[i]+flag;                flag=0;                }            }        }else if(len==a.length()){            for(int i=b.length()-len-1;i>=0;i--)            {                if(b[i]+flag-'0'>9)                {                    c+='0';                    flag=1;                }else{                c+=b[i]+flag;                flag=0;                }            }        }         else{            }            //字符串反转得到结果输出        string sum;        for(int i=c.length()-1;i>=0;i--)        {            sum+=c[i];        }        cout<<a<<" + "<<b<<" = "<<sum<<endl;        if(j==t-1)        {        }else{        cout<<endl;        }    }    return 0;}
0 0
原创粉丝点击