HDU1013 Digital Roots

题目链接

分析:

水题,但WA了很多次,发上来引以为戒。

陷阱:大数。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXN 20000

int main(){
    char s[MAXN];
    int len, i;
    __int64 n, t;
    while(gets(s) && s[0] != '0'){
        len = strlen(s);
        n = 0;
        for(i=0; i<len; i++) n += s[i] - '0';
        while(n>=10){
            t = 0;
            while(n){
                t += n % 10;
                n /= 10;
            }
            n = t;
        }
        printf("%I64d\n", n);
    }

    return 0;
}

 

posted on 2013-03-19 21:05  Still_Raining  阅读(182)  评论(0编辑  收藏  举报