在Java

时间:2016-09-30 02:31:33

标签: java fibonacci

我的代码在这里,这是斐波纳契递归方法的变体。我正试图获得正确的n值来显示,但它根本就不起作用......我总是在三重斐波纳契的一个地方(意味着三个斐波那契数字的灵感来自斐波那契数字但是从三个预定值开始,每个之后的值是前三个值的总和,而不是Fibonacci中的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)......

1 个答案:

答案 0 :(得分: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,这就是它返回的内容。这里没有错误。