我试图创建一个函数来计算给定数的阶乘。在我将大于21的数字传递给函数之前,它可以正常工作。我明白21!超过了整数的最大限制,但有没有解决办法或者我做错了什么!请帮忙下面是我的阶乘计算函数。

function calculateFactorial(number)
{
  var counter = 1;
  var factorial = number;
  if (number == 1) {
    factorial = number;
  }
  else {
    while(counter < number)
    {
      factorial = factorial * (number - counter);
      counter++;
    }
  }
  return factorial;
}

最佳答案

您应该为javascript使用biginger库。
你可以自己写(如果不需要高级操作,写起来很容易,也很有趣),也可以在网上搜索。有很多这样的图书馆:
What JavaScript library can I use to manipulate big integers?

关于javascript - 计算阶乘超过JavaScript中的最大整数限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29429395/

10-12 20:04