gpt4 book ai didi

java - 如何使用 int 返回类型方法返回 FIbonacci 序列而不使用递归?

转载 作者:行者123 更新时间:2023-12-02 09:17:37 25 4
gpt4 key购买 nike

我正在尝试在 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

最佳答案

您可以使用方程[(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

}

关于java - 如何使用 int 返回类型方法返回 FIbonacci 序列而不使用递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58887139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com