2016-09-30 54 views
1

我在這裏有我的代碼,這是斐波那契遞歸方法的變體。我試圖得到正確的n值來顯示,但它根本無法正常工作......我總是在三重斐波那契中的一個位置出現(意味着三倍斐波那契數字受斐波那契數字啓發,但是以三個預定值開始,每個值都是值之後是前三個值中斐波總和,而不是2)在Java中使用三重斐波納契的遞歸方法

public long BinaryOddonacci(int n){ 
    if (n<=2){ // If the n is 0,1 or 2 the answer is 1 
     return 1; 
    } 
    else {return BinaryOddonacci(n-1) + BinaryOddonacci(n-2) + BinaryOddonacci(n-3);} // recursive call 
} 

輸出I應該得到爲BinaryOddonacci(10)是105,但我不斷收到193,這是我應該得到對於BinaryOddonacci(11)...

+1

「這根本不起作用......我總是在三重斐波納契的某個地方關閉」請舉一個具體的例子。什麼是實際產出?它與預期的有什麼不同? –

+0

@ Code-Apprentice新增了! – lesterpierson123

+0

讓我們回到更簡單的事情。 BinaryOddonacci(3)應該是什麼?你究竟得到了什麼? –

回答

1

根據定義,您將第0,第1和第2個值設置爲1(根據此評論// If the n is 0,1 or 2 the answer is 1)。因此,序列如下:

0 : 1 
1 : 1 
2 : 1 
3 : 3 
4 : 5 
5 : 9 
6 : 17 
7 : 31 
8 : 57 
9 : 105 
10 : 193 

換句話說,BinaryOddonacci(10)應該返回193,這是它返回。這裏沒有錯誤。