一个防AK的题目
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 181 测试通过 : 68
描述
请看输入
输入
处理到文件末尾
每组的第一行包含格式如下:
a + b
(0<=a,b<=10^200)
输出
每组输出包含一行,就是结果
样例输入
1000000000000000 + 233333333
样例输出
1000000233333333
题目来源
解题思路;将字符以字符串的形式读到两个字符串数组;再用两个整形数组来存放由字符转换来的数据;
代码为:
#include <cstdio>
#include <cstring>#include <algorithm>
#define maxn 205
#define max(a,b) a>b?a:b
using namespace std;
char ch1[maxn],ch2[maxn];
int ch3[maxn],ch4[maxn];
char op;
int main()
{
while(~scanf("%s %c %s",ch1,&op,ch2))
{
int i,j;
int len1 = strlen(ch1)-1;
int len2 = strlen(ch2)-1;
memset(ch3,0,sizeof(ch3));
memset(ch4,0,sizeof(ch4));
for(i = len1,j = 0; i >= 0 ; i--,j++)
ch3[j] = ch1[i] - '0';
for(i = len2,j = 0; i >= 0 ; i--,j++)
ch4[j] = ch2[i] - '0';
int maxi = max(len1,len2);
for( i = 0 ; i <= maxi ; i++)
{
ch3[i] += ch4[i];
if(ch3[i] > 9)
{
ch3[i] -= 10;
ch3[i+1]++;
}
}
i = maxn;
while(ch3[i] == 0) i--;
if(i < 0) printf("0");
else
for( ; i >= 0; i--)
printf("%d",ch3[i]);
printf("\n");
}
return 0;
}