2008年8月10日 星期日

fibonacci數列的遞迴解法

fibonacci數列
1,1,2,3,5,8,13,21,55,.......

第一個及第二個數字是1
第三個以後的數字是前面兩個數字相加後的和

求fibonacci第n個數字的解法
使用遞迴的解法


function fibonacci($n){
if($n==1 ||$n==2){
return 1;
}else{
return fibonacci($n-1)+fibonacci($n-2);
}
}


echo fibonacci(10);

在我的機器上,如果代入fibonacci(40)
機器就會超過允許的執行時間,一個小小的程式,竟然耗用那麼多的時間,實在是可怕。

下面這行程式是一個無窮迴圈,會造成一樣的結果。
while(1){}

1 則留言:

匿名 提到...

實在是可怕。