首页 > 代码库 > 树根,函数
树根,函数
数根
题目描述
我们通过把一个正数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;
}
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。