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
#include <stdio.h>
//该函数用于求一个数的数码和
int Digital(int n)
{
int sum = 0;
while (n > 0)
{
sum += n % 10;
n /= 10;
}
return sum;
}
int main()
{
int n;
while (scanf("%d", &n), n != 0)
{
int sum = 0;
if (n < 10)
{
printf("%d\n", n);
}
else
{
//进入了else说明输入的数一定大于10,可以先计算第一次数码和
sum = Digital(n);
//如果数码和仍然大于10则一直计算直到数码和为个位数
while (sum >= 10)
{
sum = Digital(sum);
}
printf("%d\n", sum);
}
}
}