参照HPUOJ1163题:
题目描述
给定两个整数A和B,让你求出A+B的值。
输入
第一行输入一个整数T,代表有T组测试数据。
每组数据占两行,第一行输入一个整数A,第二行输入一个整数B。
注:1<=T<=30,1<=A,B<=10666666。
输出
对每组数据,输出A+B的最后结果。
样例输入
1
233333333333333333333333333333333333333
666666666666666666666666666666666666666  样例输出
899999999999999999999999999999999999999  代码:
- #include <iostream>
 - #include <cstring>
 - using namespace std;
 - char a[1000000];
 - char b[1000000];
 - int c[1000000],d[1000000],e[1000000];
 - int main()
 - {
 - int i,k,j,q,w,r;
 - cin>>r;
 - while(r--)
 - {
 - memset(c,0,sizeof(c));
 - memset(d,0,sizeof(d));
 - memset(e,0,sizeof(e));
 - cin>>a>>b;
 - j=0;
 - q=strlen(a);
 - w=strlen(b);
 - k=q>w?q:w;
 - for(i=q-1;i>=0;i--)
 - {
 - c[j]=a[i]-'0';
 - j++;
 - }
 - j=0;
 - for(i=w-1;i>=0;i--)
 - {
 - d[j]=b[i]-'0';
 - j++;
 - }
 - for(i=0;i<k;i++)
 - e[i]=c[i]+d[i];
 - for(i=0;i<k;i++)
 - {
 - if(e[i]>9)
 - {
 - e[i]-=10;
 - e[i+1]++;
 - }
 - }
 - for(i=k;i>=0;i--)
 - {
 - if(i==k && e[k]==0) continue;
 - cout<<e[i];
 - }
 - cout<<endl;
 - }
 - return 0;
 - }
 

京公网安备 11010502036488号