2013-11-28 2 views
2

Я узнаю о рекурсии, и мне необходимо умножить и выполнить мощность двух заданных чисел. Когда я запускаю мой код не работает (не означает ничего показывает на консоли)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(); 
    } 

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

+1

Вы никогда ничего не выводите .. –

+0

Почему вы ожидаете, что что-то появится на консоли? – SLaks

+2

'if (y == 0) return 0;' здесь должно быть 'return 1' –

ответ

0

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

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

Выходной код утешать:

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

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

if (y == 0) return 1; // x⁰ = 1 
+0

О да, как глупо от меня. Полностью обошли эти два бита. Спасибо – bananabreadbob

+0

Добро пожаловать;) –

1

В настоящее время, вы не вывод любых данных на консоль, чтобы вы могли ее увидеть. Функция Console.WriteLine() будет записываться в консоль. Console.ReadLine(), с другой стороны, будет постоянно ждать ввода с консоли, чтобы предотвратить немедленное выключение программы. Ваш Основной метод должен выглядеть следующим образом:

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

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

Смежные вопросы