Alternative method of calculating factorials.
<?php
function fact($n){
if($n > 170){return 0;} //This function can only calculate the factorial of numbers below 171
$i = $a = 1;
while ($i<=$n){
$a = $a * $i;
$i++;
}
$a = sprintf('%f', $a); //Convert from Scientific notation
return substr($a, 0, -7); //Remove the trailing decimal places
}
echo fact(171); //Returns 0
echo "<br />";
echo fact(12); //Returns 479001600
?>
gmp_fact
(PHP 4 >= 4.0.4, PHP 5)
gmp_fact — Factorial
Parámetros
-
a -
El número factorial.
Puede ser tanto un número de resource GMP, o una cadena numérica dada que pueda ser convertida al final en un número.
Valores devueltos
Un número de recurso GMP.
Ejemplos
Ejemplo #1 Ejemplo de gmp_fact()
<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";
$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>
El resultado del ejemplo sería:
120 30414093201713378043612608166064768844377641568960512000000000000
ghsot at ghost-tech dot com dot au ¶
2 years ago
