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