Ц Рекурзија (рекурзивна функција)

Преглед садржаја

У овом упутству научићете писање рекурзивних функција у програмирању на Ц помоћу примера.

Функција која себе назива позната је као рекурзивна функција. А, ова техника је позната као рекурзија.

Како функционише рекурзија?

 воид рекурсе () (… рекурсе (); …) инт маин () (… рекурсе (); …)

Рекурзија се наставља све док се не испуни неки услов да се то спречи.

Да би се спречила бесконачна рекурзија, може се користити изјава иф … елсе (или сличан приступ) тамо где једна грана врши рекурзивни позив, а друга не.

Пример: Збир природних бројева помоћу рекурзије

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Оутпут

 Унесите позитиван цео број: 3 збир = 6

У почетку sum()се позива из main()функције са бројем који се прослеђује као аргумент.

Претпоставимо да је вредност н унутра у sum()почетку 3. Током следећег позива функције, функцији се преноси 2 sum(). Овај процес се наставља све док н није једнако 0.

Када је н једнако 0, ifуслов не успева и elseдео се извршава враћајући зброј целих бројева на крају main()функцији.

Предности и недостаци рекурзије

Рекурзија програм чини елегантним. Међутим, ако су перформансе виталне, уместо тога користите петље јер је рекурзија обично много спорија.

То је речено, рекурзија је важан концепт. Често се користи у структури података и алгоритмима. На пример, уобичајено је користити рекурзију у проблемима као што је прелазак стабла.

Занимљиви Чланци...