This is an A+B Problem
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
As usual, there will be an A+B problem in warming up, this problem is:
Given two integers A and B, your job is to calculate the sum of A + B.
Given two integers A and B, your job is to calculate the sum of A + B.
输入
Th
ere are several test cases, For each test case:
There are two integers A, B for each case (0 ≤ A , B < 101000).
There are two integers A, B for each case (0 ≤ A , B < 101000).
输出
For each test case, output one line containing the result of A+B.
示例输入
1 2
11111111111 11111111111
示例输出
3
22222222222
提示
大数模拟:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s1[1100];
char s2[1100];
int ls[1110];
int main()
{
int l1,l2,i,j,y,a,b;
memset(s1,'\0',sizeof(s1));
memset(s2,'\0',sizeof(s2));
memset(ls,0,sizeof(ls));
while(~scanf("%s%s",s1,s2))
{
l1=strlen(s1);
l2=strlen(s2);
if(l1==1&&s1[0]=='0'&&l2==1&&s2[0]=='0')
{
printf("0\n");
continue;
} //处理0+0=0的情况
y=0;
for(i=l1-1,j=l2-1; i>=0||j>=0; i--,j--)
{
if(i>=0)
{
a=s1[i]-'0';
}
else
{
a=0;
}
if(j>=0)
{
b=s2[j]-'0';
}
else
{
b=0;
}
ls[y++]=a+b;
}
for(i=0; i<y; i++)
{
ls[i+1]+=(ls[i]/10);
ls[i]%=10;
}
i=y;
while(ls[i]==0)
{
i--;
}
for(; i>=0; i--)
{
printf("%d",ls[i]);
}
printf("\n");
memset(s1,'\0',sizeof(s1));
memset(s2,'\0',sizeof(s2));
memset(ls,0,sizeof(ls));
}
return 0;
}