gpt4 book ai didi

java - 在此斐波那契数列代码中打印 5 项后如何停止递归?

转载 作者:行者123 更新时间:2023-12-03 23:05:40 25 4
gpt4 key购买 nike

class FibR
{
int c=0;
void fib(int i,int j,int n){
if(c==n) return;
System.out.print(i+" "+j+" ");
int t=j;
i=i+j;
j=i+t;
c++;
fib(i,j,n);
}

public static void main(String[] args) {
FibR f=new FibR();
f.fib(0,1,5);
}
}

输出是:

0 1 1 2 3 5 8 13 21 34

我只需要打印 0 1 1 2 3 ,即 ,5 个术语我需要对 if 语句中的条件进行哪些更正?尝试使用 c+=2 而不是 c++ ,但代码进入无限循环。提前致谢

最佳答案

在您的每个 fib 调用中,您打印两个 fib 数字:System.out.print(i+""+j+"");

以下是一个更简单的版本:

public class FibR {
void fib(int i, int j, int n) {
if (n == 0) return;
System.out.println(i);
fib(j, i + j, n - 1);
}

public static void main(String[] args) {
FibR f = new FibR();
f.fib(0, 1, 5);
}
}

每次你调用fib,你传递最新的两个数(ij),以及还有多少数要打印( n).

关于java - 在此斐波那契数列代码中打印 5 项后如何停止递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729663/

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