数字根
时间限制:2000 / 1000ms(Java /其他)内存限制:65536 / 32768K(Java /其他)
提交总数:115接受提交:29
问题描述
正整数的数字根是通过将整数相加而得出的。如果结果值是一个数字,那么该数字就是数字根。如果结果值包含两个或多个数字,则将这些数字相加并重复该过程。只要获得一位数字就可以继续进行。
例如,考虑正整数24。将2和4相加得出6的值。由于6是单个数字,所以6是24的数字根。现在考虑正整数39。将3和9相加得出12.由于12不是单个数字,因此必须重复该过程。将1和2的3乘以一个数字,再加上39的数字根。
输入值
输入文件将包含一个正整数列表,每行一个。输入的结尾将由零的整数表示。
输出量
对于输入中的每个整数,在输出的单独行上输出其数字根。
样本输入
24
39
0
样本输出
6
3
资源
大纽约地区2000
#include<stdio.h>
#include<string.h>
int main()
{
int i,s=0,n;
char str[1000];
while(scanf("%s",str)&&str[0]!='0')
{
s=0;
for(i=0;i<strlen(str);i++)
s=s+str[i]-'0';
while(s>=10)
{
n=s;
s=0;
while(n>0)
{
s=s+n%10;
n=n/10;
}
}
printf("%d\n",s);
}
return 0;
}