Java 在不使用递归的情况下,如何使用int返回类型方法返回斐波那契序列?

Java 在不使用递归的情况下,如何使用int返回类型方法返回斐波那契序列?,java,methods,fibonacci,return-type,Java,Methods,Fibonacci,Return Type,我试图用Java创建一个方法,将fib序列打印到传递给该方法的数字。我的问题是我需要使用int返回类型来返回序列,而我不能使用递归 我的第一个想法 我最初的想法如图所示。这很好用。它接受类型为int的参数,并返回void,只需在计算时打印数字即可 public void fibonacci(int num){ int a=0; int b=0; int c=1; for(int i=0;i

我试图用Java创建一个方法,将fib序列打印到传递给该方法的数字。我的问题是我需要使用int返回类型来返回序列,而我不能使用递归

我的第一个想法 我最初的想法如图所示。这很好用。它接受类型为int的参数,并返回void,只需在计算时打印数字即可

public void fibonacci(int num){
int a=0;
int b=0;
int c=1;
for(int i=0;i
这个问题要求什么 下面的代码显示了我的任务。它要求使用一个方法,该方法接受类型为int的参数,并返回类型为int

public int fibonacci(int num){
//一些代码。。。
return x;//这让我很困惑,我知道这不对。
}
对我来说,这似乎不切实际,甚至不可能使用int返回类型。我想知道是否有人知道这是可能的

预期产出:

//驱动程序类中的方法调用。
斐波那契(5);
//这将打印到控制台。
1, 1, 2, 3, 5

您可以使用方程
[(h)^a-(j)^a]*[1/sqrt(5)]

  • 'a'
    需要斐波那契数吗
  • 'h'
    是[1+sqrt(5)]/2
  • 'j'
    是[1-sqrt(5)]/2

根据定义,不能返回包含单个int的一系列int。你到底应该归还什么?如果你只是想打印序列,那么添加一些打印。理论上,在我的驱动程序类中,如果我声明fibonacci(5),它应该打印“1,1,2,3,5”。“我知道这听起来有多奇怪,这就是为什么我想知道这是否是他们的一个错误,因为在我看来这也不可能。”毛里斯。不,使用循环
for(inti=0;i<5;i++){System.out.println(fibonacci(i));}
不清楚您试图做什么。一个需要澄清的选项是显示您似乎拥有的递归解决方案…我之前尝试过使用它,它给出了系列的最后一个数字。我刚才又试了一次,由于某种原因,它返回的序列的最后一个数字是参数中给出的数字的两倍。我将尝试使用您的解决方案获得解决方案@埃利奥特弗里希
public static int returnFibonacci(int a) {

  double firstTerm; // calculate h

  double secondTerm; //calculate j

  double fib; //calculate 1/sqrt(5) with firstTerm and secondTerm

}