我的代码在下面,这是斐波那契递归方法的一种变体。我试图显示正确的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,这就是返回的值。这里没有错误。

07-24 09:32