- Description
求两个非负整数(1000位以内)的和。
- Input
两个非负整数(1000位以内),以空格分隔。
- Output
两个非负整数的和。
- Sample Input
111111111111 222222222222
- Sample Output
333333333333
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,t1,t2,t,m=0;
char a[1000],b[1000];int c[1000];
scanf("%s%s",a,b);
t1=strlen(a);t2=strlen(b);
if(t1>t2)
{
for(i=t1-1;i>=t1-t2;i--)
{ t=a[i]-'0'+b[i-t1+t2]-'0'+m;
c[i]=t%10;
m=t/10;
}
if(m)
{
for(i=t1-t2-1;i>=0;i--)
{
t=a[i]-'0'+m;
c[i]=t%10;
m=t/10;
}
if(m)
printf("1");
}
else
for(i=t1-t2-1;i>=0;i--)
c[i]=a[i]-'0';
for(i=0;i<t1;i++)
printf("%d",c[i]);
printf("\n");
}
else
{
for(i=t2-1;i>=t2-t1;i--)
{ t=b[i]-'0'+a[i-t2+t1]-'0'+m;
c[i]=t%10;
m=t/10;
}
if(m)
{ for(i=t2-t1-1;i>=0;i--)
{
t=b[i]-'0'+m;
c[i]=t%10;
m=t/10;
}
if(m)
printf("1");
}
else
for(i=t2-t1-1;i>=0;i--)
c[i]=b[i]-'0';
for(i=0;i<t2;i++)
printf("%d",c[i]);
printf("\n");
}
return 0;
}