C#递归方法,接收整数n并按升序将所有整数从n打印到0

时间:2016-09-26 18:02:55

标签: c# recursion

我尝试使用递归方法将整数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);         
        }

2 个答案:

答案 0 :(得分:1)

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

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);和递归调用的顺序。

答案 1 :(得分:0)

首先,MyAscRec()不一定是int。它可以是void。这是一个代码来完成你想要的:

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