因子超过170岁

Tom*_*Tom 6 php factorial

每当我试图获得171的阶乘,我得到INF.170工作正常.是否有可能在脚本中获得171+的阶乘?怎么样?我的功能:

function factorial($n) {
    if ($n == 0) return 1;
    return $n * factorial($n - 1);
}
Run Code Online (Sandbox Code Playgroud)

Ebo*_*ike 8

如果处理非常大的数字,则需要使用允许您执行此操作的扩展名.

有BCMath(http://www.php.net/manual/en/book.bc.php)和GMP(http://www.php.net/manual/en/book.gmp.php).

  • GNU MP扩展甚至提供了一个`gmp_fact()`函数来计算开箱即用的大型阶乘. (4认同)

Cro*_*zin 5

您必须使用BC MathGNU MP扩展.PHP没有为高值或高精度操作OOTB提供任何工具.