Войти

Показать полную графическую версию : [решено] рекурсия


котвася
29-04-2010, 22:49
не получается рекурсия, функция должна возвращать а в степени s.
подскажите что не правильно.

int power(int a, int s)
{
return a*power(a,s-1);
}

lxa85
29-04-2010, 23:11
котвася, а выход из функции где?
На каком моменте следует остановится?
Какая среда разработки? Трассировка выполнялась? Переменные отслеживались?

котвася
30-04-2010, 06:46
если бы я сам разбирался хорошо в этом я бы такие тупые вопросы не задавал.
mvs2008
значение s уходит в минуса, хотя по идее меньше 1 не должно быть, из-за этого ошибка.

сам разобрался вот

int power(int a, int s)
{
if(s==0)
return 1;
return a*power(a,s-1);
}

lxa85
30-04-2010, 08:47
котвася, да тебя никто не в чем не обвиняет, с чего ты так решил?
Разобрался ты верно, и в принципе ответил на мои вопросы:
Поставил условие выхода, и увидел ошибку ухода s в минус и предотвратил это.
Заодно трассировку посмотрел - очень удобный инструмент.
сам разобрался вот »
Молодец! Очень радует что сам. :)




© OSzone.net 2001-2012