C# вывести силу числа с помощью рекурсии

Я узнаю о рекурсии, и мне нужно умножить и сделать мощность двух данных чисел. Когда я запускаю свой код, он не работает (то есть на консоли ничего не отображается)

Методы:

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

У кого-нибудь есть идеи? У меня такое чувство, что я делаю что-то явно глупое.

3 ответа

Выведите ваш код на консоль:

Console.WriteLine(multiply(2, 4));
Console.WriteLine(power(2, 5));

Вам также может понадобиться исправить ошибку на power:

if (y == 0) return 1; // x⁰ = 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();
}

Вы заметите ошибку в вашей функции питания, но я позволю вам отладить ее, как только вы увидите результат.

Попробуй это:

static void Main(string[] args)
    {
        Console.WriteLine("2*4=" + multiply(2, 4));
        Console.WriteLine("2^5=" + power(2, 5));
        Console.ReadLine();
    }
Другие вопросы по тегам