数根
问题描述
一个正整数的数根可以这样求得:计算该正整数的各位数字之和,如果结果的值是一位数,那么该数就是所求数根;如果结果是一个多位数,则继续计算各位数字之和,直到结果为一个数为止。
输入
输入包括多个测试数据,每组测试数据包括一个正整数,并且占一行,输入数据为0时表示输入结束。
输出
对于每组测试数据,给出对应输出,并且每组输出占一行
输入样例
24
39
0
输出样例
6
3
代码实现
#include <stdio.h>
int main()
{
long s,m;
while(1)
{
scanf("%ld",&m);
if (m == 0)
break;
do
{
s = 0;
while ( m > 0)
{
s += m % 10;
m /= 10;
}
m = s;
}while(m >= 10);
printf("%ld\n",s);
}
return 0;
}