hdu 1002

来源:互联网 发布:天津光线网络 编辑:程序博客网 时间:2024/05/16 09:11

http://acm.hdu.edu.cn/showproblem.php?pid=1002

分析:题目意思很好理解,就是计算两个数相加的和,这两个数的位数不超过1000位;


代码:

#include <iostream>#include <string>using namespace std;#define max_len 1010int main(){    int n,k,n1,n2,i,j,flag;    string s1,s2;    int a1[max_len],b1[max_len];    cin>>n;    for(k=1;k<=n;k++)    {        cin>>s1>>s2;        n1=s1.length();        n2=s2.length();        cout<<"Case "<<k<<":"<<endl<<s1<<" + "<<s2<<" = ";        memset(a1,0,sizeof(a1));        memset(b1,0,sizeof(b1));        j=0;        for(i=n1-1;i>=0;i--)        {            a1[j]=s1[i]-'0';            j++;        }        j=0;        for(i=n2-1;i>=0;i--)        {            b1[j]=s2[i]-'0';            j++;        }        for(i=0;i<max_len;i++)        {            a1[i]+=b1[i];            if(a1[i]>9)                a1[i]=a1[i]%10,a1[i+1]++;        }        flag=0;        for(i=max_len-1;i>=0;i--)        {            if(flag)                cout<<a1[i];            else if(a1[i])                cout<<a1[i],flag=1;        }        if(k<n)            cout<<endl<<endl;        else            cout<<endl;    }    return 0;}


原创粉丝点击