【问题标题】:How to get Factorial of number in JavaScript? [duplicate]如何在 JavaScript 中获取数字的阶乘? [复制]
【发布时间】:2015-11-23 18:52:37
【问题描述】:

我正在学习 Java Script,有一个关于获取用户输入的阶乘的练习,但由于某种原因,我总是得到答案是 = 1

这是我的代码:

<SCRIPT>
function factorial(num){

    for (n=1; n<=num; n++){

    return fact*n;
    }
}

var myNum, fact;

myNum = parseFloat(window.prompt('Enter positive integer : ',''));
fact = 1;
document.write('the factorial of the number is = '+ factorial(myNum));



</SCRIPT>

【问题讨论】:

  • 问题是你的函数returns 太早了。
  • 先尝试搜索看看stackoverflow.com/questions/3959211/…之前是否有人问过这个问题
  • 将您的代码粘贴到您的问题中。请不要快照。
  • 抱歉屏幕截图,但当我尝试添加实际代码时,一切都错了

标签: javascript factorial


【解决方案1】:

图片代码(请在以后包含实际代码,而不是代码截图)立即返回fact

for ( n = 1; n <= num; n++ ) {
  return fact * n;
}

因为n 开始于1

想要是在函数中包含fact,并随着循环的进行将其相乘,然后返回:

function factorial(n) {
  var fact = 1;

  for ( n = 2; n <= num; n++ ) {
    fact = fact * n;
  }

  return fact;
}

【讨论】:

  • 我会在 10 分钟后将此标记为答案
  • 抱歉截图,但当我尝试添加实际代码时,一切都错了
【解决方案2】:

返回 1 的原因是因为在上面的循环中,您在第一次迭代时返回值,所以 n 永远不会大于 1。

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 2015-02-03
    • 2011-08-08
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 2018-01-01
    相关资源
    最近更新 更多