258. Add Digits

 1 static int wing=[]()
 2 {
 3     std::ios::sync_with_stdio(false);
 4     cin.tie(NULL);
 5     return 0;
 6 }();
 7 
 8 class Solution 
 9 {
10 public:
11     int addDigits(int num) 
12     {
13         return 1+((num-1)%9);
14     }
15 };

每次把个位前面的数字n累加一次,整个数字就变小了9的倍数

比如:

123——1+2+3=6=123-12*9

182012——1+8+2+0+1+2=14=182012-9*18201——1+4=5=14-1*9

所以,只要拿原数字对9求余即可

但是要注意一点,若原数字本身就为9的倍数时,直接求余会输出0,而正确答案是9

因此,为了使得9X%9=9,要(9X-1)%9+1

猜你喜欢

转载自www.cnblogs.com/zhuangbijingdeboke/p/9087085.html