递归将数字和减少为一位数字,JavaScript


我们要编写一个函数,它接受一个数字并不断累加一位数字直至结果不再是一位数字,当我们得到一位数字时,我们返回它。

它的代码很简单,我们编写一个递归函数,它不断累加数字直至该数字大于 9 或小于 -9(我们要单独处理符号,这样我们就不用编写两次逻辑。)

示例

const sumRecursively = (n, isNegative = n < 0) => {
   n = Math.abs(n);
   if(n > 9){
      return sumRecursively(parseInt(String(n).split("").reduce((acc,val) => {
         return acc + +val;
      }, 0)), isNegative);
   }
   return !isNegative ? n : n*-1;
};
console.log(sumRecursively(88));
console.log(sumRecursively(18));
console.log(sumRecursively(-345));
console.log(sumRecursively(6565));

输出

在控制台的输出将为 −

7
9
-3
4

更新于: 24-Aug-2020

219 次浏览

开始你的职业生涯

完成课程并获得认证

立即开始
广告