我感到无聊并创建了这个脚本,其唯一目的就是练习循环。我正在尝试使用因子数,例如479001600
,它是12的阶乘!我正在把它喂给循环,找出479001600
是一个阶乘的数字。使用479001600/2 -> 239500800/3 -> 79833600/4 ...-> previous_int/n+1
技术,我提出了以下代码,只能使用12个代码!但是失败了13!向前:
<?php
function inv($int){
$j=2;
for($i=0;$i<$j;$i++){
$prod = $int/$j;
if($prod !== 1){
$int = $prod;
echo $prod. "<br>";
$j++;
} elseif($prod == 1) {
return $j;
}
}
}
echo inv(6227020800); // 13!
?>
When I try to compute the 6227020800 to 13! I get the following output:
<?php
function inv($int){
$j=2;
for($i=0;$i<$j;$i++){
$prod = $int/$j;
if($prod !== 1){
$int = $prod;
echo $prod. "<br>";
$j++;
} elseif($prod == 1) {
return $j;
}
}
}
echo inv(6227020800); // 13!
?>
即使它通过循环除法得到整数1,它也会忽略if语句。有什么我做错了吗?任何帮助将不胜感激,我也想避免使用gmp_函数。
答案 0 :(得分:1)
这是因为1和0.071428571428571的类型不同。
您的比较运算符!==
检查值是否相同,因为它们的类型不同,检查失败。要亲眼看看,请试试这个:
echo gettype(1);
echo gettype(0.12);