求和数字JavaScript的递归积

我们必须创建一个函数,该函数接受任意数量的参数(数字文字),将它们加在一起,并在答案只有1位数字长时返回数字的乘积。

例如-

如果参数是-

16, 34, 42

我们必须首先将它们加在一起-

16+34+42 = 92

然后继续将数字相乘,直到得到这样的1位数字-

9*2 = 18

1*8 = 8

当获得一位数字时,我们必须从函数中返回它。

我们将其分为两个功能-

  • 一个函数接受一个数字并返回其数字的乘积,我们将使用递归来实现,我们将其称为第一个函数product()

  • 第二个函数递归调用此product()函数,并检查乘积是否恰好为1位,否则返回乘积,否则将继续迭代。

整个功能的代码将是-

示例

const recursiveMuliSum = (...numbers) => {

   const add = (a) => a.length === 1 ? a[0] : a.reduce((acc, val) => acc+val);

   const produce = (n, p = 1) => {

      if(n){

         return produce(Math.floor(n/10), p*(n%10));

      };

      return p;

   };

   const res = produce(add(numbers));

   if(res > 9){

      return recursiveMuliSum(res);

   }

   return res;

};

console.log(recursiveMuliSum(16, 28));

console.log(recursiveMuliSum(16, 28, 44, 76, 11));

console.log(recursiveMuliSum(1, 2, 4, 6, 8));

输出结果

控制台中的输出将为-

6

5

2

以上是 求和数字JavaScript的递归积 的全部内容, 来源链接: utcz.com/z/316817.html

回到顶部