我们需要编写一个JavaScript函数,该函数必须以数字表示,并反复将其数字求和,直到将其转换为一个数字为止。
我们将通过两种方法解决此问题-
此解决方案利用while循环来递归地将数字相加。
const num = 123456; const addDigits = (num = 1) => { let sum = num; while(sum % 10 !== sum){ let sum1 = 0; while(sum > 0){ sum1 += sum % 10; sum = Math.floor(sum / 10); } sum = sum1; }; return sum; }; console.log(addDigits(num));
该解决方案利用了数学的Congruence公式,建议读者探索该公式以更好地理解该解决方案。
const num = 123456; const addDigits = (num = 1) => { let predicate = (num - 1) % 9; return ++predicate; }; console.log(addDigits(num));
输出结果
控制台中这两种方法的输出将是-
3