void printInt(int n){
if(n==1)
cout<<1<<" ";
else
printInt(n-1);
cout<<n<<" ";
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
1 1 2 3....n
Run Code Online (Sandbox Code Playgroud)
我在一张纸上写出了函数的实际步骤,但我不知道如何在控制台中打印额外的1(Visual Studio 2010).这是来自过去的硬件解决方案,所以这只是为了理解它是如何工作的.
你需要一些大括号:
if(n==1)
{
cout<<1<<" ";
}
else
{
printInt(n-1);
cout<<n<<" ";
}
Run Code Online (Sandbox Code Playgroud)
否则第二个cout即使在运行时也会运行n==1.严格来说,不需要围绕第一个 括号cout,但在这种情况下我喜欢它的风格.
编者注:通过在调试器中单步执行函数可以轻松解决此问题.