258.各位总和(javascript)258.AddDigits

原创
小哥 3年前 (2022-11-10) 阅读数 11 #大杂烩

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

Given an integer num, repeatedly add all its digits until the result has only one digit, and return it

示例 1:

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

Input: num = 38
Output: 2
Explanation: The process is
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2 
Since 2 has only one digit, return it.

示例 1:

输入: num = 0
输出: 0

var addDigits = function (num) {
    while (num >= 10) {
        //该方法是将获得的数字的每一项相加,sum是结果值,将sum赋值给num ,再次循环
        let sum = 0
        while (num > 0) {
            sum += num % 10
            num = Math.floor(num / 10)
        }
        num = sum
    }
    return num
};

//代码优化
var addDigits = function (num) {
    while (num >= 10) {
        num = baseSystem(num)
    }
    return num
};
//该方法是将获得的数字的每一项相加,sum是结果值
var baseSystem = function (x) {
    let sum = 0
    while (x > 0) {
        sum += x % 10
        x = Math.floor(x / 10)
    }
    return sum
}

leetcode: https://leetcode-cn.com/problems/add-digits/

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除