NodeJS 如何在js [closed]中找到使用函数递归和条件(可能我不确定)得到的结果

yv5phkfx  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(91)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

7小时前关闭
Improve this question

  1. 39 = 4(进程39 = 27,27 = 14,1*4 = 4)
  2. 226 = 2(进程999 = 729,729 = 126,126 = 12,1*2 = 2)
    我不知道如何用递归和条件来做。请帮助我,我想解决这个问题,如果有人能想出其他解决方案,请告诉我。
    谢谢你!安静!
gfttwv5a

gfttwv5a1#

我觉得你是想解决这个问题

**从第39个数字开始。把39分解成数字:3和9。将数字相乘:3 * 9 = 27。结果是27。对27重复该过程:把它分解成2和7,然后把它们相乘:2 * 7 = 14。结果是14。最后,将14分解为1和4,并将它们相乘:1 * 4 = 4,最终结果为4。因此,基于给定的过程,39的结果将是4。

您可以将此JavaScript代码用于这些解决方案

function findResult(n) {
  if (n < 10) {
    return n;
  } else {
    let product = 1;
    while (n > 0) {
      const digit = n % 10;
      product *= digit;
      n = Math.floor(n / 10);
    }
    return findResult(product);
  }
}

// Example usage:
console.log(findResult(39)); // Output: 4
console.log(findResult(226)); // Output: 2

在这段代码中,findResult函数接受一个输入值n。如果n小于10,则返回n作为结果。否则,它迭代n的数字,将它们相乘,并将乘积赋给product变量。然后,它递归地调用findResult,并将产品作为新的输入。这个过程一直持续到n变成一个数字。
所提供的代码应该为您提供了共享示例的预期结果。但是,请注意,此解决方案假设当结果变为个位数时,该过程停止。如果有其他需要考虑的条件或限制,请提供更具体的细节,我很乐意进一步帮助。
交替解

function findResult(n) {
  while (n >= 10) {
    let product = 1;
    while (n > 0) {
      const digit = n % 10;
      product *= digit;
      n = Math.floor(n / 10);
    }
    n = product;
  }
  return n;
}

// Example usage:
console.log(findResult(39)); // Output: 4
console.log(findResult(226)); // Output: 2

相关问题