树根,函数
时间:2014-05-22 06:32:54
收藏:0
阅读:268
数根
题目描述
我们通过把一个正数N的所有数字求和S来计算这个数的“数根”,如果累加的和为个位数,则这个数S即为N的“数根”;如果是两位和两位以上的数,那么重复这种累加求和的步骤,直到结果是个位数为止。 举例来说,对于正数N=24,将数字2和4相加得到6,因为6是个位数,所以6就是24的“数根”。再考虑N=39,将数字3和9相加得到12,因为12不是个位数,重复上面的计算,将数字1和2相加得到3,则3是个位数也就是39的“数根”了。
输入
输入数据中包含了若干个正数,一行一个,输入以“0”结束。
输出
对于每一个输入的正数,分行输出其“数根”。 [translated by B2L]
样例输入
24
39
0
样例输出
6
3
提示
输入的正数很长,有可能大大超过了长整型能表示的范围。
#include<iostream>
#include<string.h>using namespace std;
int t;
int su(int sum)
{
t=0;
while(sum)
{
t+=sum%10;
sum/=10;
}
if(t>=10)
return su(t);
else
return t;
}
int main()
{
int n,sum;
char x[1000];
while(cin>>x&&x[0]!=‘0‘)
{
sum=0;
for(int i=0;i<strlen(x);i++)
{
sum+=x[i]-‘0‘;
}
cout<<su(sum)<<endl;
}
}
评论(0)