Php 如何打印阶乘序列?

Php 如何打印阶乘序列?,php,algorithm,function,Php,Algorithm,Function,我想知道如何在php中打印阶乘。我曾尝试在Google上搜索,但无法找到带有可靠示例Php代码的结果。我发现这个forloop,我不满意这个 for($c=3; $c>=1;$c--){ for($d=$c; $d>=1; $d--){ echo $c; }// for ends echo "<br />"; }// for ends 试试这个 function factorial(

我想知道如何在php中打印阶乘。我曾尝试在Google上搜索,但无法找到带有可靠示例Php代码的结果。我发现这个forloop,我不满意这个

for($c=3; $c>=1;$c--){
        for($d=$c; $d>=1; $d--){
        echo $c;
            }// for ends
            echo "<br />";
    }// for ends
试试这个

function factorial($number) { 

    if ($number < 2) { 
        return 1; 
    } else { 
        return ($number * factorial($number-1)); 
    } 
}

使用PHP内置的以下函数

$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

有关更多信息,请参阅计算阶乘非常简单,也不需要递归:

function factorial($x) {
    $r = 1;
    for ($i = 2; $i <= $x; ++$i) {
        $r *= $i;
    }
    return $r;
}

echo factorial(10), PHP_EOL;

为了计算阶乘

function factorial($in) {
    return array_product(range(1, $in));
}
function factorial_print($in) {
    return implode(' * ', array_reverse(range(1, $in)));
}
像这样使用它

echo factorial(5);
echo factorial_print(5);
如果要打印阶乘

function factorial($in) {
    return array_product(range(1, $in));
}
function factorial_print($in) {
    return implode(' * ', array_reverse(range(1, $in)));
}
像这样使用它

echo factorial(5);
echo factorial_print(5);

@jQuery.PHP.Magento.com我想它是在phpGoto PHP.ini文件中使用的,取消对行扩展名=PHP\u gmp.dll的注释。也在这里查一下。你只是说:嗨,它不工作。您需要从php.ini中取消对扩展行的注释,这非常简单。在尝试自己之前,请不要说它不起作用:为什么它不起作用!它不起作用,当我放入阶乘10时,它给了我3628800。根据我给出的正确数字,根据你的说法,10的阶乘是什么?你应该手动计算并交叉检查,你也可以匹配这里的数字它不起作用,当我把factorial5放进去的时候,它给了我120,我认为它应该返回5*4*3*2*1@ayazkhan 5! === 120问题是什么?我认为OP没有清楚地表达他希望输出的内容,他希望5*4*3*2*1打印为输出您需要安装扩展名,检查linux,谷歌Windows转到php.ini文件取消注释行扩展名=php\u gmp.dll。这里也检查一下这是我首先想到并回答的,但后来我明白了,OP想要阶乘的表示,或者他不清楚问题'5*4*3*2*1',在更正拼写功能后,我无法编译它,它说意外的'r',我很好奇$r*=*$i;是的$r*=一美元;只需将$r乘以$i,并将结果存储在$r。。。。它被记录在PHP文档中,我知道,您的代码中还有一个输入错误,我猜$r*=*$i;需要为$r*=$i;,您还需要填写退货$r;最后