【发布时间】:2021-12-24 21:57:31
【问题描述】:
我目前很难理解这段代码,因为我不是递归专家。所以,我想请人解释一下这背后的逻辑。
#include <iostream>
using namespace std;
void fun(int n){
if(n==0){
return;
}
for (int i = 0; i < 5; i++) {
cout<<n<<" ";
fun(n-1);
}
}
int main()
{
fun(5);
return 0;
}
我理解输出到 5 4 3 2 1 然后当基本条件达到时,然后在我无法理解逻辑之后。
【问题讨论】:
-
令人困惑的部分是递归和迭代同时结合。
-
您尚未包含
fun(5)的完整输出。完整的输出不适合评论 -
This 产生您声明的输出。您的代码产生不同的输出
-
您引用的输出不是由显示的代码产生的。
fun(2)调用应该连续产生五个1s,而不是两个。 -
@Caleth 您的代码不同。您的循环运行
n次,OP 的循环正好运行 5 次。