Рекурсивные функции

Рекурсивные функции делят на собственно рекурсивные и косвенно рекурсивные. Функция называется косвенно рекурсивной в том случае, если она содержит обращение к другой функции, содержащий вызов данной функции. Если же в теле функции имеется вызов самой этой функции, то речь идет о прямой рекурсии, а такую функцию называет рекурсивной. Рекурсивные алгоритмы эффективны в тех задачах, где рекурсия используется в определении данных. Если у задачи есть очевидное итерационное решение, то рекурсии следует избегать. Поэтому серьезное изучение рекурсивных методов нужно проводить, вводя динамические структуры данных. Классический пример

long factorial (int k)

{

if (k<0) return 0;

if (k==0) return 1;

return k*factorial(k-1);

}

При наличии прототипов вызываемые функции не обязаны размещаться в одном файле с взывающей функцией и могут оформляться в виде отдельных модулей, либо могут находиться уже в оттранслированном виде в библиотеке объектных модулей. Прототипы функций и описания внешних объектов помещают в отдельный заголовочный файл, который препроцессорной командой

# include “имя файла”

включают в начало каждого из модулей программы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: