今天有点郁闷,想刷两道水题解解闷的,结果找上了这道题,结果。。。。WA了n次,刚开始没考虑到大数,直接写了个整数的递归交上去了,然后WA就下来了!!后来看到discuss里有人说用字符串写,结果整了半天就是WA,没办法,找来别人的代码一看,我晕!以0结束,我直接没判断。。。。悲剧的一天啊~~~
不说了, 看代码:
#include <stdio.h>
#include <string.h>
int root(int x)
{
int sum = 0;
while(x)
{
sum += x%10; x /= 10;
}
if(sum < 10) return sum;
else return root(sum);
}
int main()
{
int x, i;
char s[1001];
while(scanf("%s",s) != EOF)
{
if(!strcmp(s, "0")) break;
for(i = 0, x = 0; s[i] != '\0'; i++)
x += s[i] - '0';
printf("%d\n", root(x));
}
return 0;
}