2016-09-26 10 views
-4

整数nを0から昇順に出力する再帰的な方法を作ろうとしましたが、再帰的方法として正しく書かれていないようです。C#整数nを受け取り、すべての整数を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

再帰は、それ自身を呼び出すメソッドを伴います。これはありません。あなたの教科書をもう一度見てみることをお勧めします。 – Danimal

+0

再帰(再入可能)メソッドは、処理中に自身を呼び出すメソッドです。この方法はそれを行うために書かれていません。 – Kevin

答えて

1

あなただけの数字を印刷する必要がある場合は、機能は同じくらい単純なことができます:あなたは降順を望んでいた場合は、単にConsole.WriteLine(n);の順序や再帰呼び出しを変更します

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); 
} 

0

まず、MyAscRec()は、intである必要はありません。代わりにvoidにすることができます。これは、あなたがしようとしていることを行うためのコードです:

private static void MyAscRec(int n){ 
    if(n==0) 
    Console.Write(n+" "); 
    else{ 
     MyAscRec(n-1); 
     Console.Write(n+" "); 
    } 
} 
関連する問題