Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] рекурсия (http://forum.oszone.net/showthread.php?t=174465)

котвася 29-04-2010 22:49 1403708

рекурсия
 
не получается рекурсия, функция должна возвращать а в степени s.
подскажите что не правильно.
Код:

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


lxa85 29-04-2010 23:11 1403718

котвася, а выход из функции где?
На каком моменте следует остановится?
Какая среда разработки? Трассировка выполнялась? Переменные отслеживались?

котвася 30-04-2010 06:46 1403834

если бы я сам разбирался хорошо в этом я бы такие тупые вопросы не задавал.
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 1403863

котвася, да тебя никто не в чем не обвиняет, с чего ты так решил?
Разобрался ты верно, и в принципе ответил на мои вопросы:
Поставил условие выхода, и увидел ошибку ухода s в минус и предотвратил это.
Заодно трассировку посмотрел - очень удобный инструмент.
Цитата:

Цитата котвася
сам разобрался вот »

Молодец! Очень радует что сам. :)


Время: 15:11.

Время: 15:11.
© OSzone.net 2001-