void printInt(int n){
   if(n==1)
     cout<<1<<" ";
   else
     printInt(n-1);
     cout<<n<<" ";
  }

我得到的输出是
 1 1 2 3....n

我正在一张纸上写出该功能的实际步骤,但是我不知道它如何在控制台中打印额外的1(Visual Studio 2010)。这是从过去的硬件解决方案中获得的,因此严格来说是为了了解其工作原理。

最佳答案

您需要一些括号:

   if(n==1)
   {
     cout<<1<<" ";
   }
   else
   {
     printInt(n-1);
     cout<<n<<" ";
   }

否则,即使cout,第二个n==1也会运行。严格来说,不需要第一个cout周围的花括号,但在这种情况下,我喜欢使用它作为样式。

编者注:通过在调试器中逐步执行功能,可以轻松解决此问题。

关于c++ - “print 1 to n”函数打印两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18595718/

10-17 01:41