所以我在遞歸的思路新,我寫了這個簡單的代碼來因子的數字($ N)這是代碼:PHP遞歸誤差融通
$n = 120;
$y = 1;
function factor($n, $y) {
if($y > $n) {
return 1;
} else {
$x = $n/$y;
list($whole, $dec) = array_pad(explode('.', $x), 2, Null);
if($dec == '') {
echo 'x:' . $x . ' y:' . $y . '</br>';
return factor($n, ($y + 1));
}
}
}
這是什麼代碼輸出:
x:120 y:1
x:60 y:2
x:40 y:3
x:30 y:4
x:24 y:5
x:20 y:6
所以我的問題是爲什麼在它完成之前停止?
它發生是因爲我把回報率($ N,($ Y + 1));在if語句中,當我應該放在if和else之外時 – jkdba 2012-02-17 01:22:09
@JohnK如果你希望它繼續循環,直到達到遞歸限制($ y> $ n),那麼你應該打破這條線返回if語句。 – fayerth 2012-02-17 01:29:17