The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root.
正整数 加每一位 结果是1位数 -- 是root
If the resulting value contains two or more digits, those digits are summed and the process is repeated. This is continued as long as necessary to obtain a single digit.
结果是2位数以上,再来一次,直到root
For example, consider the positive integer 24. Adding the 2 and the 4 yields a value of 6. Since 6 is a single digit, 6 is the digital root of 24.
Now consider the positive integer 39. Adding the 3 and the 9 yields 12. Since 12 is not a single digit, the process must be repeated. Adding the 1 and the 2 yeilds 3, a single digit and also the digital root of 39.
输入描述:
The input file will contain a list of positive integers, one per line.
The integer may consist of a large number of digits.
输出描述:
For each integer in the input, output its digital root on a separate line of the output.
样例输入:
24
39
样例输出:
6
3
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <map>
#include <stack>
using namespace std;
int getResult(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
bool isQualified(int n) {
if (n >= 0 && n <= 9) {
return true;
} else {
return false;
}
}
int getRoot(int n) {
int root = getResult(n);
while(!isQualified(root)){
root = getResult(root);
}
return root;
}
int main() {
int n;
while (cin >> n){
cout << getRoot(n) <<endl;
}
}