题目:

给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。

样例:

给出 num = 38。
相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。

思路:

  1. 逐位相加直到小于10
  2. 通过发现规律:周期是9

参考答案:

class Solution {
public:
    /*
     * @param num: a non-negative integer
     * @return: one digit
     */
    int addDigits(int num) {
        // write your code here
        
        
        while(num/10 > 0){
            int sum = 0;
            while(num > 0){
                sum += num%10;
                num /= 10;
            }
            num = sum;
        }
        return num;
        
        //return (num-1)%9 + 1;
    }
};

wydong
40 声望5 粉丝

wyd


« 上一篇
尾部的零
下一篇 »
Hello-CTF