如何在这个程序中编写关于递归的基本情况
How to write the base case in this program about recursion?
步骤1:在这个实验中,您将学习如何声明函数。在MSVS中输入、保存、编译并执行以下程序。调用新目录"recursionExp1"和程序"recurssion1.cpp"。回答以下问题:
#include <iostream>
using namespace std;
void recursive_countdown(int count)
{
if (count == 0)
cout<<"count="<<count<<endl;
else
{
cout<<"count="<<count<<endl;
recursive_countdown(--count);
}
}
int main(void)
{
int count = 10;
recursive_countdown(count);
return 0;
}
问题1:这个程序是做什么的?
问题2:请写出基本情况?
问题3:递归调用"recursive_countdown"多少次?
问题4:请使用迭代函数重写步骤1中的程序以倒计时?调用函数"iteration_countdown"。
问题5:哪种类型的函数(递归或迭代)执行得最快?请解释一下?
这似乎是家庭作业。为了正确地回答这个问题,我将引导你找到一个答案,而不是给你。
递归算法/函数在完成之前会调用自己若干次。为了使递归堆栈停止,它需要有一种情况,即它不再调用自己,而是返回一些东西。这种情况称为基本情况。
您提供的程序从传递给第一个recursive_countdown()
调用(在本例中为10
)的数字开始递归递减计数。递归函数中有一种情况,当函数不再调用自己时,这是您的基本情况。想想这在逻辑上是什么,你希望倒计时功能什么时候停止?现在在代码中查找它。
相关文章:
- 通过递归进行因子分解
- 递归函数计算序列中的平方和(并输出过程)
- 使用递归的数组的最小值.这是怎么回事
- 递归列出所有目录中的C++与Python与Ruby的性能
- 递归计数给定目录的文件和所有目录
- 如何在BST的这个简单递归实现中消除警告
- C++:正在检查LinkedList中的回文-递归方法-错误
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 递归无序映射
- TSP递归解的迭代形式
- 如何在Elixir中调用递归函数并行
- 返回递归调用和仅递归调用的区别
- 数组元素打印的递归方法
- 使用递归时获取变量的奇怪值
- 如何将记忆应用于此递归函数?
- 作用于可变类模板参数的递归函数
- 在不使用递归的情况下将 FFT 应用于两个非常大的数字的乘法
- 递归递归文件
- 迭代等价于递归算法
- 递归呼吸优先搜索适用于第一次执行,但不适用于随后的执行