258.各位相加


258.各位相加

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。

示例 1:

输入: num = 38
输出: 2
解释: 各位相加的过程为:
38 –> 3 + 8 –> 11
11 –> 1 + 1 –> 2
由于 2 是一位数,所以返回 2。

示例 2:

输入: num = 0
输出: 0

提示:

  • 0 <= num <= 231 - 1

题解:

// class Solution {
//     public int addDigits(int num) {
//         if (num < 10) {
//             return num;
//         }
//         int count = 0;
//         while (num > 0) {
//             count += num % 10;
//             num /= 10;
//         }
//         return addDigits(count);
//     }
// }

// 个人认为最优雅的做法
class Solution {
    public int addDigits(int num) {
        if (num < 10) {
            return num;
        }
        return addDigits(num % 10 + num / 10);
    }
}

文章作者: Feliks
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Feliks !
评论
  目录