给定一个非负整数 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
}