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个参数呢?调用该函数两次是有意义的。
我在 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个参数呢?调用该函数两次是有意义的。