【问题标题】:Fibonacci method return nth number in sequence斐波那契方法按顺序返回第 n 个数字
【发布时间】:2014-05-17 08:22:49
【问题描述】:

我需要创建一个方法来返回斐波那契数列中的第 n 个整数,我编写的代码在打印到表格中时会返回该数列中的第二个整数。方法中使用的int fib是行号乘以列号,大家帮忙看看?

private int fibonacci(int fib){
    int a = 1, b = 1;
    while(a < fib){
        b+=a+=b;
    }
    return b+=a+=b;
}

private int fibonacci(int fib){
    int fibn = 0;

    fibn =(int)((Math.pow((1+Math.sqrt(5)), fib)-Math.pow((1-Math.sqrt(5)), fib))/(Math.pow(2,  fib)*Math.sqrt(5)));

    return fibn;
}



   *    |   1   2   3   4   5
--------------------------------
   1    |   1   1   2   3   5
   2    |   1   3   8  21  55
   3    |   2   8  34 144 610
   4    |   3  21 144 9876765

【问题讨论】:

  • 为什么不使用Binet's Formula
  • 感谢让我更接近,但我需要更改 int fib 的值,因为现在在表中,该系列在该系列的稍后部分重印了一个数字
  • 你的问题到底是什么,因为你可以在互联网上找到很多斐波那契的实现,所以我想你想要更多的东西。但这在您的帖子中并不透明。
  • 我需要在表格中使用它来打印表格中的斐波那契数列,但我无法让它们连续打印,他们稍后在系列中重新启动一个数字,我添加了我的方法并打印了表格到我的代码,这样你就可以看到
  • 我想通了,我只需要使用计数变量而不是行*列,我不知道为什么我之前没有想到,感谢帮助

标签: java loops methods return fibonacci


【解决方案1】:

试试这个代码,例如:

public class Fibonacci {
    public static void main(String[] args) {
        int n = 15, a = 1, b = 1;
        System.out.print(a + " " + b);
            for(int i =3; i < n; i++) {
            b = a + b;
            a = b - a;
            System.out.print(" " + b);
        }
    }
}

这给出了输出:

1 1 2 3 5 8 13 21 34 55 89 144 233 377

【讨论】:

    猜你喜欢
    • 2012-10-12
    • 2022-12-10
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    相关资源
    最近更新 更多