接收一个整数n并按升序打印从n到0的所有整数的递归方法

本文关键字:整数 打印 递归方法 升序 一个 | 更新日期: 2023-09-27 18:08:49

我尝试用递归方法将整数n按升序打印到0,但显然它不能正确地写成递归方法

private static int MyAscRec(int n)
     {
        int counter = 0;
         while(counter <= n)
            {
               Console.WriteLine(counter);
               counter++;
            }
            return counter;
        }
        static void Main(string[] args)
        {
            int a = MyAscRec(20);         
        }

接收一个整数n并按升序打印从n到0的所有整数的递归方法

如果您只需要打印数字,则函数可以简单如下:

private static void MyAscRec(int n)
{
    if (n < 0) return;     // End of recursion
    MyAscRec(n - 1);       // Recursive call first so you get the ascending order
    Console.WriteLine(n);  
}

如果你想要降序,你只需要改变Console.WriteLine(n);和递归调用的顺序。

首先,MyAscRec()不一定是int。它可以是void。这里有一段代码来做你想做的事情:

private static void MyAscRec(int n){
    if(n==0)
    Console.Write(n+" ");
    else{
        MyAscRec(n-1);
        Console.Write(n+" ");
    }
}