【算法训练】LeetCode#258 各位相加

一、描述

258. 各位相加

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

示例 1:

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

示例 2:

输入: num = 0
输出: 0

二、解题

Java

    public static int addDigits(int num) {
        int left = num;
        int ans = 0;
        while (true){
            ans += left % 10;
            left = left/10;
            if (left == 0){
                if (ans < 10){
                    return ans;
                } else {
                    left = ans;
                    ans = 0;
                }
            }
        }
    }

C++

int addDigits(int num) {
    int ans = 0;
    while (true){
        ans += num%10;
        num /= 10;
        if (num == 0){
            if (ans < 10){
                return ans;
            } else {
                num = ans;
                ans = 0;
            }
        }
    }
}
posted @ 2023-07-01 22:31  小拳头呀  阅读(21)  评论(0)    收藏  举报