【Leetcode258】Add Digits

首先找规律;

0  1  2  3  4  5  6  7  8  9  10  11 12 13 14 15 16 17

0  1  2  3  4  5  6  7  8  9   1    2   3   4  5    6   7   8

规律是1~9的9进制循环,直接%9算的话:

1~9分别对应:

1 2 3 4 5 6 7 8 0

而不是我们想要的:

1 2 3 4 5 6 7 8 9

原因在与9可以整除9了,如果提前-1,再补上+1,那么对前8个数字不会有影响,但是9规避掉了整除,变成了8+1=9

class Solution {
public:
    int addDigits(int num) {
        return (num == 0) ? 0 : (num-1)%9+1;
    }
};

参考:https://www.cnblogs.com/grandyang/p/4741028.html

发布了112 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39458342/article/details/104764026
今日推荐