栗子:
123 % 9 =6= 1 + 2 + 3
题目:
给定非负整数 n。如果 n 不为单数,则对 n 计算 n 的各个数位上位数的和为 res,如果和也不为单数则继续对 res 进行同样的运算。
123 >> 1+2+3=6(单数,结束)
456 >> 4+5+6=15(不为单数,继续) >> 1+5=6(单数,结束)
我:
function digital_root(n) {
let numTostr = n + "";
if (numTostr.length == 1) { return n; }
n = 0;
[...numTostr].map(item => { n += parseInt(item); });
return digital_root(n);
}
别人:
function digital_root(n) {
return (n-1)%9 + 1;
}