Description
给定两个数a,b,输出a+b
Input
有T组输入
对于每组输入有两个非负整数a,b(<=10^210)
Output
对于每组数据输出a+b
input Copy
2 1 1 2 2
output Copy
2 4
注意此题的数据范围,所以不可以用int 或者long long int 直接相加;
此题要运用到字符串来完成相加
将各个位的十进制数字转化为字符类型,用acsii码转化,进行相加减,
求出答案上各个位的数字,粘连成字符串输出即可
#include<stdio.h>
#include<string.h>
int main(void){
int a1,b1,c1,s,N;
char a[1000],b[1000],c[1001];
scanf("%d",&N);
while(N--){
s=0;
scanf("%s%s",a,b);
a1=strlen(a);
b1=strlen(b);
c1=a1>b1?a1:b1;
for(int i=1;i<=c1;i++)
{
s=s+(a1>=i?a[a1-i]-'0':0)+(b1-i>=0?b[b1-i]-'0':0);
c[c1-i]=s%10+'0';
s/=10;
}
c[c1]=0;
if(s>0) printf("1");
printf("%s\n",c);
}
}