請問一下...
費式數列 : F0 = 1 ; F1 = 1 ;
Fn = F(n-1) + F (n-2) ; n>=2 ;
現在要利用JAVA使用遞迴的觀念求出 F10 以上的項數數值;
以下是我自己想的....
static int fibonacci( int term ) //類別方法 : 傳入的參數為欲求之項數
{ if ( term == 0 )
return 1 ;
if ( term == 1 )
return 1 ;
else
term = term - 1 ;
return term + fibonacci( term - 1 ) ; //呼叫類別方法
}
是哪裡出了錯了呢??他算出1~4項都OK..
結果到了第5項開始就不對了...
請各位大大教敎我吧~~ >.<
謝謝囉~~~
2007-02-12 11:25:58 · 2 個解答 · 發問者 祥GA 1 in 電腦與網際網路 ➔ 程式設計
這樣就可以啦,怎麼會用term = term -1;不合費氏數列邏輯
static int fibonacci( int term ) //類別方法 : 傳入的參數為欲求之項數
{
if ( term == 0 )
{
return 1 ;
}
elseif ( term == 1 )
{
return 1 ;
}
else
return fibonacci( term - 2 ) + fibonacci( term - 1 ) ; //呼叫類別方法
}
}
2007-02-12 13:43:09 · answer #1 · answered by 醉愛翡翠珠寶精品 3 · 0⤊ 0⤋
我去查課本…
第 0 項是 0 ,第 1 項是 1
public static long F(long term){
if(term==0||term==1){
return term;
}else{
return F(term-1)+F(term-2);
}
}
2007-02-12 14:16:05 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋