【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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章