任何非负整数(除了 9 的整数倍)模 9 等与该数字的各数位上位数的和

栗子:
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;
}

任何非负整数(除了 9 的整数倍)模 9 等与该数字的各数位上位数的和

上一篇:剑指 Offer 35. 复杂链表的复制


下一篇:什么是 MySQL 索引?