2

私は再帰について学んでおり、乗算して与えられた 2 つの数値の累乗を行う必要があります。コードを実行しても機能しません (つまり、コンソールに何も表示されません)。

方法:

 static int multiply (int x, int y)
    {
    if ( y == 1 )
        return   x ;
   else
        return (x + multiply(x, y - 1));
     }

    static int power(int x,int y)
    {
        if (y == 0)
            return 0;
        else
            return (x * power(x, y - 1));
    }

主な方法:

static void Main(string[] args)
    {
        multiply(2, 4);
        power(2, 5);
        Console.ReadLine();
    }

誰にもアイデアはありますか?明らかにばかげたことをしているような気がします。

4

3 に答える 3

1

現在、コンソールにデータを出力していないため、表示できます。関数 Console.WriteLine() はコンソールに書き込みます。一方、 Console.ReadLine() は、コンソールからの入力を継続的に待機します。これは、プログラムがすぐに終了するのを防ぐためです。Main メソッドは次のようになります。

static void Main(string[] args)
{
    int z = multiply(2, 4);
    int p = power(2, 5);
    Console.WriteLine("z : " + z);
    Console.WriteLine("p : " + p);
    Console.ReadLine();
}

累乗関数のバグに気付くでしょうが、出力が確認できたらデバッグさせてください。

于 2013-11-28T18:18:26.713 に答える