题意:
就是给你一个数,如果这个数的各个位数的加和是个位数,就可以得到这个答案,如果是百位或者是千位的话,就继续,模拟出来就是一个递归。
#include<stdio.h>
#include<string.h>
int dfs(int n){//首先写一个递归来得到答案
int b = 0;
while(n>0){
b = b + (n%10);
n = n /10;
}
if(b>9) return dfs(b);//如果你超过了10,那么很可惜,你得挂,再次进入循环
else printf("%d\n",b); //否则呢,你在十之内了,那就好好的输出
}
int main()
{
int i=0,j,k;
char ch[10010];
while(scanf("%s",&ch)!=EOF)
{
k = strlen(ch);//注意字符的0
if(ch[0]=='0') break;
else{
for(j=0;j<k;j++){
i += ch[j] - '0';//如何变化为数字!!!!!
}
}
dfs(i);
i=0;
}
return 0;
}