这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
和 HDOJ 1002 A + B Problems(2) 类似。2题可以一起做了。
这里很郁闷,本来在POJ1053做过,这里就是比那多了一个n次输入。结果在HDOJ一直WA,题目看着感觉也怪怪的。
感觉似乎有错,这里把输出格式说下:每组后面空一行,最后一组后面没有空行。
// Author: Tanky Woo
// HDOJ 1047
// Accepted 1047 0MS 192K 1052B C++ Tanky Woo
// 思路:全部相加后在一起处理
/*
#include
#include
using namespace std;
int nCases;
// www.wutianqi.com
char a[110];
int n[110];
int main()
{
//freopen("input.txt", "r", stdin);
scanf("%d", &nCases;);
for(int i = 1; i <= nCases; ++i)
{
memset(a, 0, sizeof(a));
memset(n, 0, sizeof(n));
getchar();
int flag = 0; //判断是否有输入,若无输入,则输出0
while(scanf("%s", a) && strcmp(a, "0") != 0)
{
flag = 1; //有输入,置1
int cnt = 0;
int len = strlen(a);
for(int i = len-1; i >= 0; --i) //输入并相加
{
n[cnt] += a[i]-'0';
cnt++;
}
}
for(int j = 0; j < 110; ++j) //相加后一起处理
{
if(n[j] >= 10)
{
n[j+1] += n[j] / 10;
n[j] %= 10;
}
}
int j;
//注意:这里不是最多进一位那么简单,可能进好多位
//所以要从数组最后一直判断
for(j = 109; j >= 0; --j)
if(n[j] != 0)
break;
for(int k = j; k >= 0; --k)
printf("%d", n[k]);
if(flag == 0)
printf("0");
i == nCases? printf("\n") : printf("\n\n");
}
return 0;
}