您好我有一个功课问题我被困在..任何提示或提示将不胜感激.问题是:
在C++中编写一个递归函数,将一个正整数作为参数n然后打印n, n-1, n-2,...3,2,1,2,3,...n.你的算法做了多少次递归调用?算法运行时间最差的是什么?
我陷入了第一部分.编写打印的递归函数n, n-1, n-2,...3,2,1,2,3,...n
到目前为止我有:
print(int n)
{
if (n==0)
return;
cout<<n<<" ";
print(n-1);
return;
}
Run Code Online (Sandbox Code Playgroud)
但这只打印n到1
我失去了我将如何打印2到n只使用一个参数和递归单一功能.
我试过这个:它给出了正确的输出,但有一个循环,有两个参数:
p and z has the same value.
void print(int p,int z)
{
if (p==0)
{
for(int x=2;x<=z; x++)
cout<<x<<" ";
return;
}
else
cout<<p<<" ";
print(p-1,z);
return;
}
Run Code Online (Sandbox Code Playgroud)
任何暗示或提示非常感谢谢谢.
所以它现在正在运作,但我无法理解如何(评论中的问题):
void print(int n)
{
if (n==1){
cout<<n;
return;
}
else
cout<< n;
print(n-1); // how does …Run Code Online (Sandbox Code Playgroud)