个位相加(思维)

题目
给定一个非负整数 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} ,前面一部分都是9的倍数,我们可以对9取模将其去掉,为了防止答案本身是9的情况,我们需要先-1,再取模。

class Solution {
public:
    int addDigits(int num) {
        return (num-1)%9+1;
    }
};
发布了152 篇原创文章 · 获赞 2 · 访问量 6436

猜你喜欢

转载自blog.csdn.net/weixin_43918473/article/details/105468174