「每日LeetCode」2022年6月20日

本文最后更新于:2023年3月19日 晚上

258.各位相加

258.各位相加

Category Difficulty Likes Dislikes
algorithms Easy (69.24%) 437 -

Tags
Companies
给定一个非负整数 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) 时间复杂度内解决这个问题吗?


Discussion | Solution

思路

按题意模拟即可

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
* @lc app=leetcode.cn id=258 lang=javascript
*
* [258] 各位相加
*/

// @lc code=start
/**
* @param {number} num
* @return {number}
*/
var addDigits = function (num) {
while (num >= 10) {
num = +(num + "").split("").reduce((a, b) => +a + +b);
}
return num;
};
// @lc code=end