Blog·Tanky WooABOUTRSS

HDOJ 1047 Integer Inquiry

22 Jul 2010
这篇博客是从旧博客 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;
}