php 中使用函数和 for 循环的 2 个不同的数字输入阶乘

2 different number input factorial using function and for loop in php

我在 php 中使用函数和 for 循环制作 C(m,n)=m!/n!(m-n)! 公式时遇到问题,我的代码如下所示:

<?php
function factorial($m,$n){
 $facm=$m;
 for ($i=$m-1; $i >= 1 ; $i--) { 
  $facm*=$i;
 }
 $facn=$n;
 for ($i=$n-1; $i >= 1 ; $i--) { 
  $facn*=$i;
 }
 $faco=$m-$n;
 for ($i=$m-$n; $i >= 1 ; $i--) { 
  $faco*=$i;
 }
 return $facm/$facn*$faco;
}
}

echo factorial($bilm,$biln);
?> 

但是这段代码显示错误的结果,是我的代码有问题吗?感谢您的关注。

是的,如果坚持使用 2 个参数,您可以像下面那样操作。如果参数是动态变化的,则将数组传递给函数并在那里执行 foreach。

 <?php
    $bilm = $_POST['bilm'];
    $biln = $_POST['biln'];

    function factorial($m,$n){

            $facm=$m;
            for ($i=$m-1; $i >= 1 ; $i--) { 
                $facm*=$i;
            }

            $facn=$n;
            for ($i=$n-1; $i >= 1 ; $i--) { 
                $facn*=$i;
            }

            $facmsubn = $msubn=$m-$n;
            for ($i=$msubn-1; $i >= 1 ; $i--) { 
                $facmsubn*=$i;
            }

            return ($facm/$facn)*$facmsubn; //By assuming (m!/n!)*(m-n)!; If it is m!/(n!*(m-n)!) then change the logic as per your formula
   }
          echo factorial($bilm,$blin);
    ?>

但是为什么要传2个参数呢?调用该函数两次是有意义的。

运行环境在这里http://phpfiddle.org/main/code/zkfs-21am