题目:将某数的每位相加,和作为新数,直至不超过10
分析:按部就班地做呗
答案:
class Solution {
public:
int addDigits(int num) {
while (num/10 >0 ){
int newnum = 0;
while(num){
int digit = num%10;
num /= 10;
newnum +=digit;
}
num = newnum;
}
return num;
}
};
扩展:
其实这个数学问题是有闭合解的
n的digit root:
- dr(n) = 1 + (n - 1) % 9