2012-11-25 223 views
-2

我想問一下,如何用遞歸的方法讓php函數斐波那契的php代碼。沒有「for」循環。我有這樣的代碼,沒有'for'怎麼樣? 感謝球員,,用遞歸替換循環

<?php function fibo($n){ 
if($n==0) 
    return 0; 
elseif($n==1) 
    return 1; 
else 
    $tambah=fibo($n-1)+fibo($n-2); 
    return $tambah; 
    } 

for($n=0;$n<15;$n++){ 
    echo fibo($n)."<br/>";} 
+2

while循環?目前還不清楚你的要求。 –

+0

您已經有遞歸定義。此外,如果優化你的代碼是你感興趣的,PHP中的遞歸可能是一個壞主意。 –

+0

我讀這個問題的方式,他想知道如何使用遞歸替換循環。請記住,在某些編程語言中,除了使用遞歸循環之外,您別無選擇,因爲它們沒有循環結構之類的東西。 – goat

回答

1
function repeat($func, $times) { 
    if ($times <= 0) { 
     return; 
    } 
    $func($times); 
    repeat($func, $times - 1); 
} 

$f = function($n) { 
    echo fibo($n)."<br/>"; 
}; 

repeat($f, 15); 

演示http://codepad.viper-7.com/F9TKPS

+0

爲什麼downvote? –

+0

可能是因爲我發佈了無法工作的未經測試的代碼:)它現在有效。 – goat

+0

它可以做得更簡單。 –