#include <stdio.h>
/*
作者:
厦门理工学院 计算机与信息工程学院 FnLock
时间:
2017年11月12日00:14:34
程序描述:
第二届程序设计大赛 数字根
Time Limit:1000MS Memory Limit:65536K
Total Submit:308 Accepted:200
Description
一个正整数(N <= 100000)的根是通过其各位数字之和求得。如果计算结果是个位数,那么这个正整数的根就是这个位数;如果计算结果是两位数或者是多位数,那么这些数的数字就需要重复累加,直到累加结果是一位数为止。
例如,正整数24,将其数字2和数字4累加得到6,因为6是个位数,所以正整数24的根就是6;例如,正整数39,累加3和9得到12,12不是个位数,所以需要重复累加,将1和2累加得到3,3是个位数,所以3是正整数39的根。
Input
输入将由多行正整数组成,每行一个正整数,数0表示输入结束。
Output
对应每行输入的正整数,输出每行其对应的根。
Sample Input
24
39
583
0
Sample Output
6
3
7
Source
*/
int root(int n)//求根
{
int temp=n;
int sum=0;
while(temp>0)
{
sum+=temp%10;
temp/=10;
}
return sum;
}
int main(void)
{
int n;
while(scanf("%d",&n)&&n!=0)
{
int sum=root(n);
while(sum>9)//若根为两位数则继续求根
{
sum=root(sum);
}
printf("%d\n",sum);
}
return 0;
}
1029第二届程序设计大赛 数字根
最新推荐文章于 2022-07-27 11:15:08 发布