题解 | #Digital Roots#
Digital Roots
https://www.nowcoder.com/practice/cef727d0af33479c9fb4a9c120702414
/*
解释一下题目: 就是给你一个数让你求数的数根!什么叫数根? 比如24这个数的数根,就是把24各个位的数加起来!2+4=6 而且6是个位数,于是它就是24的数根。 然后39这个数一样的方法,3+9=12 此时我们发现12不是个位数,所以它不是数根,继续让它各个 位数相加,1+2=3,3是个位数所以3是39的数根。
*/
#include <iostream>
using namespace std;
int digital_root(int n) {
//当n大于9时,循环计算
while (n > 9) {
//新的n
int new_n = 0;
//计算n的各个位数之和
while (n > 0) {
new_n += n % 10;
n /= 10;
}
//更新n
n = new_n;
}
//返回n
return n;
}
int main() {
int num;
//循环读入整数
while (cin >> num) {
//输出整数的数字根
cout << digital_root(num) << endl;
}
return 0;
}
查看8道真题和解析