题目 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 对于一非负数,其构成为 ∑ 1 0 i ∗ a i = ∑ ( 1 0 i − 1 ) ∗ a i + ∑ a i \sum{10^i*a_i} = \sum{(10^i-1)*a_i}+\sum{a_i} ∑10i∗ai=∑(10i−1)∗ai+∑ai,前面一部分都是9的倍数,我们可以对9取模将其去掉,为了防止答案本身是9的情况,我们需要先-1,再取模。
class Solution {
public:
int addDigits(int num) {
return (num-1)%9+1;
}
};