gpt4 book ai didi

c - 为什么递归函数中必须使用else才能得到完整的排列

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

如果不使用else,答案就只有一个。就像11111...111,当使用else时,我可以得到正确的答案。代码:

void f(int cur, int n)
{
if(cur == n)// print answer
{
for(int i = 0; i < n; i++)
printf("%d", A[i]);
printf("\n");

}
//else no else no whole answer
for(int i = 1; i <= n; i++)
{
A[cur] = i;
f(cur + 1, n);
}
}

最佳答案

如果你不添加 else 那么,当 cur == n 时,你的函数也会执行这个 for 语句:

   for(int i = 1; i <= n; i++)
{
A[cur] = i;
f(cur + 1, n);
}

但是当你这样做时,每次你的条件为真时,你只会执行

if(cur == n)// print answer
{
for(int i = 0; i < n; i++)
printf("%d", A[i]);
printf("\n");

}

而不是两者都。

关于c - 为什么递归函数中必须使用else才能得到完整的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29364149/

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