如何在这个程序中编写关于递归的基本情况

How to write the base case in this program about recursion?

本文关键字:于递归 递归 基本情况 程序      更新时间:2023-10-16

步骤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)的数字开始递归递减计数。递归函数中有一种情况,当函数不再调用自己时,这是您的基本情况。想想这在逻辑上是什么,你希望倒计时功能什么时候停止?现在在代码中查找它。