gpt4 book ai didi

java - 斐波那契递归前

转载 作者:行者123 更新时间:2023-12-01 14:00:02 25 4
gpt4 key购买 nike

同样,我仍在使用递归,我有一个关于基本情况之一的问题。

UPD:a 和 b 代表序列中的第一个数字,n 是要计算的总和的所需位置。

我的代码如下:

public static int fib(int a, int b, int n) {

if (n <=1) {
return a;
} else if (n == 2) {
return b;
} else {
return (fib(a, b, n - 1) + fib(a, b, n - 2));
}
}

在第 2 行中,在我开始手动追踪程序之前,我将其保留为 "n<=0"。然而,当我跟踪并运行该程序时,我得到了一个不同的答案。问题是在某个时刻 n 将 = 1。因此我将第一个基本情况更改为 n<=1 并得到了相同的答案。

现在的问题是,假设我按如下方式调用该方法:fib(2,3,6)答案应该是 = 21 (第 2 行 = "n<=1")但当第 2 行为“n<=0”时,答案为 27。

我想知道当第 2 行给出“n<=0”时 n 最终 = 1 时程序会发生什么

最佳答案

n为1时的调用会产生两次n为0和n为-1的额外递归调用。这两个递归调用会将 a 添加两次到正确答案中。

关于java - 斐波那契递归前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19395920/

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