【问题标题】:Making a recursive method with triple fibonacci in Java在Java中使用三重斐波那契制作递归方法
【发布时间】:2016-09-30 02:31:32
【问题描述】:

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

【问题讨论】:

  • “它根本不起作用......我总是在三重斐波那契中偏离一个位置”请举一个具体的例子。实际输出是什么?它与您的预期有何不同?
  • @Code-Apprentice 已添加!
  • 让我们回到更简单的东西。 BinaryOddonacci(3) 应该是什么?你实际上得到了什么?
  • 为什么输入0的结果是1?对于正常的斐波那契,对于输入 0,此结果为 0。

标签: java fibonacci


【解决方案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,这就是它返回的值。这里没有错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2017-05-08
    • 2019-01-21
    相关资源
    最近更新 更多