如何在不使用递归的情况下使用int返回类型方法返回FIbonacci序列?

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

我的第一个想法

我的原始想法如所示。哪个工作正常。它采用类型为 int 的参数,并返回 void ,仅在计算得出的数字时将其打印出来。

public void fibonacci(int num) {
    int a = 0;
    int b = 0;
    int c = 1;


    for (int i = 0; i < num; i++) {
        a = b;
        b = c;
        c = a + b;
        System.out.print(c + ",");
    }
}

问题的要求

下面的代码显示了我的任务。它要求一种方法,该方法采用 int 类型的参数并返回 int 类型。

public int fibonacci(int num) {

    //some code...

    return x; //This is what confuses me. I know this isn't right.
}

在我看来,这似乎不切实际,甚至可能无法使用int返回类型。我想知道是否有人知道这是可能的方法。

预期输出:

//Method call in driver class.
fibonacci(5);

//This would print to console.
1,1,2,3,5
jinjin1991 回答:如何在不使用递归的情况下使用int返回类型方法返回FIbonacci序列?

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

  • 'a'是想要的斐波那契数字
  • 'h'是[1 + sqrt(5)] / 2
  • 'j'是[1-sqrt(5)] / 2
public static int returnFibonacci(int a) {

  double firstTerm; // calculate h

  double secondTerm; //calculate j

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

}
本文链接:https://www.f2er.com/3091643.html

大家都在问