大家好。我需要帮助理解我的硬件任务。我从 C++ 开始,并不太了解。我确实知道堆栈和斐波那契数列的基础知识。但是,我并不完全理解给我的问题,也不需要解决问题的代码,而是帮助澄清一些步骤。这是硬件:
“通过完成这个项目,您将熟悉在 C++ 中使用递归和创建 ADT。
创建一个整数堆栈 ADT(您可以修改讲义中提供给您的 IntStack ADT),使其最大容量至少为 256 个元素。如果打印到 C++ ostream(例如 cout),还添加任何需要的内容,以便打印出其内容(从左到右,堆栈顶部在右侧)。该堆栈的设计应使其仅保存大于零的有意义的值。小于或等于零的值应打印为“?”。
编写课堂上讨论的斐波那契数列的递归实现。另外 - 创建一个在调用之间持续存在的堆栈 ADT 的实例(它不能是局部变量),并在每一步中,将一个无意义的值推入其中,直到确定该阶段的值,然后将其弹出, 并推入确定的值并在返回之前打印整个堆栈。
您的程序应该要求确定斐波那契数列中的位置 N,然后它应该输出函数调用的结果。示例输出(包括递归函数的输出)如下:
输入斐波那契数列中的位置以确定:5
?-?-?-1
?-?-?-1
?-?-2
?-?-1
?-3
?-?-1
?-?-1
?-2
5
Fibonacci(5) = 5
这里的输出到底是什么?它是否在计算第 5 个位置时打印出堆栈?还有关于如何在 C++ 中将斐波那契实现到堆栈中的任何想法?这些值应该存储在数组、列表中还是无关紧要?我是一个菜鸟,所以任何帮助将不胜感激。谢谢