Php IF语句中的条件是否不满足?
此函数的目的是打印任意给定数字的阶乘。除了运行它,我只得到最后一个要计算的因子,在本例中是20*1。我很确定这是因为if/else语句中的第一个条件永远不会满足,但我不知道为什么Php IF语句中的条件是否不满足?,php,Php,此函数的目的是打印任意给定数字的阶乘。除了运行它,我只得到最后一个要计算的因子,在本例中是20*1。我很确定这是因为if/else语句中的第一个条件永远不会满足,但我不知道为什么 <?php function factorializer($factorial){ $factorialResult = 0; for($i = $factorial; $i > 1; $i--){ $tempResult = $factorial * ($i-1);
<?php
function factorializer($factorial){
$factorialResult = 0;
for($i = $factorial; $i > 1; $i--){
$tempResult = $factorial * ($i-1);
if($tempResult == $factorialResult){
$factorialResult = $factorialResult + $tempResult;
}
else{
$factorialResult = $tempResult;
}
}
print($factorialResult);
}
factorializer(20);
?>
阶乘中没有加法,阶乘使用乘法。我也不认为您需要在这里使用if
$result = 1;
for($i = $factorial; $i > 1; $i--) {
$result *= $i;
}
return $result;
在比较$tempResult和$factorialResult时,$factorialResult始终是$tempResult+$factorial的值(在第一次迭代之后)。你是对的,如果陈述从来都不是你设定的正确
我所知道的是,似乎有一个用于阶乘的内置PHP函数:gmp_fact(20)-()
Logan Murphy的答案似乎很有效,可能是除了内置的方法之外最简单的方法