大整数加法

来源:互联网 发布:手机便签软件 编辑:程序博客网 时间:2024/04/28 06:57

Description

写程序求两个相同位数的大整数之和

Input

两个大整数(位数不超过1000)

Output

两个大整数的和

Sample Input

1234567890  1234567890111111111111 222222222222

Sample Output

2469135780333333333333

Hint


输入用while(scanf() != EOF) 或者 while(cin >>)

#include<iostream>
#include<cstring>
using namespace std;
int  main()
{
    chara[1001],b[1001],c[1002]={0};
    inti,j,n1,n2,n;
   while(cin>>a>>b)
    {
   n1=strlen(a);
   n2=strlen(b);
   n=n1>n2 ?n1:n2;
   if(n1<n2)
    {
       for(i=n2-1,j=n1-1;j>=0;i--,j--)
       {
               
               b[i]=b[i]+a[j]-'0';
               
       }
       for(i=0;i<n;i++)
       c[i]=b[i];
    }
    else
    {
           for(i=n1-1,j=n2-1;j>=0;i--,j--)
       {
               a[i]=a[i]+b[j]-'0';
       }
           for(i=0;i<n;i++)
       c[i]=a[i];
    }
     
  
   for(i=n-1;i>0;i--)
    {
       if(c[i]>'9')
       {
           
           c[i]-=10;
           c[i-1]+=1;
       }
    }
   if(c[0]>'9')
    {
       cout<<"1";
       c[0]-=10;
    }
   for(i=0;i<n;i++)
       cout<<c[i];
   cout<<endl;
    }
return0;   
}

0 0
原创粉丝点击