gpt4 book ai didi

java - 递归求解斐波那契数列,无需先验数字

转载 作者:行者123 更新时间:2023-12-01 23:11:52 24 4
gpt4 key购买 nike

有没有办法在事先没有任何信息的情况下打印斐波那契数列到第n位数字?这是我的方法之一,尽管它使用了先验信息。

int p;
int n = 0;
String fib = "0, 1";

public printFib () {
String fibSequence = fibPrint(0, 1, x); //x denotes xth fib number
System.out.println(fibSequence);
}

private String logicFib (int a, int b, int c) {
if (n == c-2) {
return fib;
} else {
n++;
p = a + b;
fib = fib + ", " + p;
logicFib(b, p, c);
}
}

这里的问题是,当我想要时,我在数字 1, 2 之上打印数字 3, 4, 5, ... n将它们全部打印出来,而无需先声明前两位数字。我的方法的逻辑只有在前两位数字已知的情况下才有效,而我想放弃这一点。

最佳答案

我认为斐波那契的标准解决方案如下所示:

public class Fibonacci {

public long fibo(long n){
if(n == 0)
return 0;
if(n == 1)
return 1;
else
return fibo(n-1) + fibo(n-2);
}

public static void main(String...args){

int n = 20;
Fibonacci f = new Fibonacci();
for(int i = 0; i < n; i++){
System.out.println(f.fibo(i));
}
}
}

在递归方法中,您始终需要中断条件。在这种斐波那契方法的情况下,这将是第 0 个和第 1 个斐波那契数,正如您在上面所认识的那样。没有其他方法可以递归计算斐波那契数。您只需要中断条件。

如果您不需要方法的递归特性,您可以通过比奈公式计算该数字。有关此的更多信息,请点击here .

编辑:

我改变我的方法。现在正在计数直到第 n 个斐波那契数。

关于java - 递归求解斐波那契数列,无需先验数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809139/

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