gpt4 book ai didi

java - 斐波那契使用递归从用户在 Java CLI 中给出的两个任意数开始

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

最近,我开始测试一些我已经考虑了一段时间的东西。斐波那契序列方案有多种方法可以解决,但在本例中我尝试做一些稍微不同的事情。我正在尝试对用户在 CLI 中给出的数字使用递归。这是我到目前为止所得到的。我提供了一个似乎可以用于比较目的的迭代版本。

用户在 CLI 中给出的数字:4 和 6。数字 9 是此处的 n

迭代:

1: ite: 6 
2: ite: 10
3: ite: 16
4: ite: 26
5: ite: 42
6: ite: 68
7: ite: 110
8: ite: 178
9: ite: 288

递归:

1: rec: 16
2: rec: 33
3: rec: 59
4: rec: 102
5: rec: 171
6: rec: 283
7: rec: 464
8: rec: 757
9: rec: 1231

递归版本的方法:这里 num0num1 是保存 CLI 给出的值的变量。

public int Recursive(int n) {
//....
int a = num0;
int b = num1;
if(n < 0)
{
return n;
}else{
int c = a+b;
a = b;
b = c;
return Recursive(n-1)+Recursive(n-2)+c;
}
}

任何想法或想法都将不胜感激。

最佳答案

您可以使用辅助函数来完成此操作。

public int Recursive(int n) {
// ....
int a = 4;
int b = 6;
System.out.println(a);
System.out.println(b);
n--;
return RecursiveFib(a, b, n);
}

private int RecursiveFib(int a, int b, int n) {
if (n < 1) {
return b;
} else {
System.out.println(a + b);
int tmp = a;
a = b;
b += tmp;
n--;
return RecursiveFib(a, b, n);
}
}

由于您的起始数字可以是任意的,因此应用 fib(n-1) + fib(n-2) 逻辑是不同的,除非您存储所有数字。

关于java - 斐波那契使用递归从用户在 Java CLI 中给出的两个任意数开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287340/

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