1181: a+b(不同于第一题)
时间限制: 10 Sec 内存限制: 128 MB提交: 1079 解决: 357
[ 提交][ 状态][ 讨论版]
题目描述
求a+b的值
输入
第一行一个整数T,表示接下来有T行
每行两个整数是a,b,(0<=a,b<=10^10000)
输出
输出值
样例输入
2100 10010000000000 10000000000
样例输出
20020000000000
提示
来源
using namespace std;
int main(void)
{
int i,j,t;
scanf("%d",&t);
while(t--)
{
char a[10001]={0},b[10001]={0},c[10001]={0};
int fg=0,k=1,jw=0;
scanf("%s %s",a,b);
int l1=strlen(a),l2=strlen(b);
for(i=0,j=l1-1;i<j;i++,j--) swap(a[i],a[j]);
for(i=0,j=l2-1;i<j;i++,j--) swap(b[i],b[j]);
int l=max(l1,l2);
for(i=0;i<l;i++)
{
if(i>=l1&&i<l2) c[i]=b[i]+jw;
else if(i>=l2&&i<l1) c[i]=a[i]+jw;
else if(i<l1&&i<l2) c[i]=a[i]+b[i]-'0'+jw;
jw=(c[i]-'0')/10;
c[i]=(c[i]-'0')%10+'0';
}
while(jw>0)
{
c[l++]=jw%10+'0';
jw=jw/10;
}
for(i=l-1;i>=0;i--) printf("%c",c[i]);
printf("\n");
}
return 0;
}