在 Java 中使用三重斐波那契制作递归方法

Making a recursive method with triple fibonacci in Java

我的代码在这里,它是斐波那契递归方法的变体。我试图获得正确的 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) 获得的输出...

根据定义,您将第 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)应该是return193,也就是returning。这里没有报错。