Given an integer num, repeatedly add all its digits until the result has only one digit, and return it.
給予一個整數 num,重複相加所有的數字直到結果只有個位數,並回傳該值。 ex. Input: nums = 18 18 = 1 + 8 --> 9 return 9
Example 1:
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.
Example 2:
Input: num = 0 Output: 0
Solution:
1. 如果 num 介於 0 ~ 9 之間,回傳 num。
2. 當 (num > 9)時宣告 sum = 0,且
3. 當 (num 的整數不等於 0),
執行以下:
(1.) sum = 0 + 個位數
(2.) num = num / 10
將 num = sum,回傳 num。
Code 1:
var addDigits = function(num) { if (num < 10 && num >= 0) return num while (num > 9) { let sum = 0 while (parseInt(num) !== 0) { sum += parseInt(num % 10) num /= 10 } num = sum } return num; };
FlowChart:
Example 1
Input: num = 38 38 !== 0 --> 3 + 8 --> 11 11 !== 0 --> 1 + 1 --> 2 2 < 9, return 2
Example 2
Input: num = 0 return 0
Code 2:
var addDigits = function(num) { if (num === 0) return 0; if (num % 9 === 0) return 9; return num % 9; };
Code 3:
var addDigits = function(num) { return 1 + (num - 1) % 9 };