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