Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 836 Bytes

add-digits.md

File metadata and controls

44 lines (34 loc) · 836 Bytes

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

示例 1:
输入: num = 38
输出: 2
解释: 各位相加的过程为:
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
由于 2 是一位数,所以返回 2。
示例 1:
输入: num = 0
输出: 0
提示:
  • 0 <= num <= 231 - 1
进阶:
  • 你可以不使用循环或者递归,在 O(1) 时间复杂度内解决这个问题吗?
题解:
impl Solution {
    pub fn add_digits(num: i32) -> i32 {
        let mut sum = num;
        
        while sum >= 10 {
            let n1 = sum / 10;
            let n2 = sum % 10;
            sum = n1 + n2 
        }

        sum
    }
}