题目描述
LuxakyLuee给了jhljx一个数,然后让他把这个数的每一位加起来。
如果加起来的和的位数多于1位的话,就继续将这个数的每一位数字加起来,直到最后只有一个为止。输入
输入一组数据。
该组数据只有一行,为一个整数n。
(保证33.33%的n在int范围内,33.33%的n在long long范围内,33.33%的n超过long long范围)输出
输出最后所得的结果。
输入样例
987
输出样例
6
AC代码:
#include <iostream>
#include <stdio.h>
using namespace std;
int NumRoot(int n) //求数根算法
{
int sum = 0; //n的各个数位之和为sum
while (n != 0){ //循环对n取余即可分离各个数位
sum = sum + n%10;
n = n/10;
}
if(sum>9) //如果sum为两位数,还要继续求数根
return NumRoot(sum);
return sum;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
int res = NumRoot(n);
printf("%d",res);
}
return 0;
}