我的代码在下面,这是斐波那契递归方法的一种变体。我试图显示正确的n值,但它根本不起作用...我总是在三重斐波那契数列中只占一个位置(这意味着三重斐波那契数受斐波那契数启发,但以三个预定值开头之后的值是前三个值的总和,而不是斐波纳契中的2)
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
}
我应该为BinaryOddonacci(10)得到的输出是105,但我一直得到193,这就是我应该为BinaryOddonacci(11)得到的输出...
最佳答案
根据定义,您将0th,1st和2nd值设置为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,这就是返回的值。这里没有错误。