Description
按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3。

输入
每行输入一个非负整数n,n≤10500,n为0时结束。

输出
每行输出对应整数的分类数。

Sample Input
24
39
0

Sample Output
6
3

Source
ericxie

#include <stdio.h>
int main()
{
char str[500];//要输入的数为最多可以有500位,用字符串存储
while(scanf("%s",str)!=EOF)//输入
{
if(str[0]=='0'&&str[1]=='\0')//当输入为'0'时,结束循环。\0是字符串的结束符
{
break;
}
int s=0,i=0;
while(str[i]!='\0')
{
s+=str[i]-'0';//acsii码的性质。
i++;//i增加,读取下一个字符
}
int sum=0;
while(s>0)//s==0,循环结束
{
sum+=s%10;
s/=10;
if(sum>9&&s==0)//sum大于9并且s==0,继续迭代
{
s=sum;
sum=0;
}
}
printf("%d\n",sum);//输出
}
return 0;
}

写于2021年8月19日16:07分。