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 — Factorielle GMP
Liste de paramètres
-
a -
Le nombre factoriel.
Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.
Valeurs de retour
Une ressource GMP.
Exemples
Exemple #1 Exemple avec 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";
?>
L'exemple ci-dessus va afficher :
120 30414093201713378043612608166064768844377641568960512000000000000
ghsot at ghost-tech dot com dot au ¶
2 years ago
