gpt4 book ai didi

c++ - 修复递归数组

转载 作者:行者123 更新时间:2023-11-30 04:29:20 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Make an array to store the calculated numbers in memory

我必须修改一些代码来做一些新的事情。

这些是新要求:

-程序将需要使用一个数组来将计算出的斐波那契数存储在内存中。 (可以是全局变量)

-数字数组也被认为是一个部分填充的数组,因此我需要声明一个变量来跟踪数组中存储的项目数。

-数字数组应声明为有 46 个位置。

-数字 46 应声明为名为 MAXFIB 的全局常量,因此数字 46 不应在我的程序中出现超过一次。

-在您的程序开始时,数字数组需要使用“起始知识”(基本情况)进行初始化-前两个斐波那契数是 1 和 1。将它们存储到前两个数组位置。

- 添加一组额外的基本情况,以便如果“n”参数值太低或太高,函数将停止并返回 -1,表示错误情况。

-添加一个额外的基本情况,这样如果我们正在寻找的斐波那契数已经存储在数组中,那么我只需要从数组中检索它并返回它。

-对于递归的情况,还是需要像之前一样递归调用两次函数,但是在计算完数字后,我需要将它存储到数组中再返回。

到目前为止,这是我的代码:

#include <iostream>
using namespace std;

// Returns the nth number in the fibonacci sequence
int fib(int n, int* memory);

const int MAXFIB = 46;

int main()
{
int memory[MAXFIB];

memory[0] = 1;
memory[1] = 1;

cout << fib(46) << endl;

system("pause");
return 0;
}

int fib(int n, int* memory)
{
// Base cases
if (n < 1 || n > MAXFIB) return -1;

if (n == memory) return memory;

// Recursive cases
memory[n] = fib(n-1) + fib(n-2);
return;

}

那么,我的问题是,我做对了什么,做错了什么?我需要更正和/或完成什么?

谢谢

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