If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
PHP , JavaScript, C की तरह ही C में भी हम recursive functions define कर सकते है।
Same Function को उसी Function के अंदर call करने को ही Recursive Function कहते हैं , और इस process को Recursion कहते हैं।
Recursive Functions का use tree structure (read या tree structure बनाने में ) में सबसे ज्यादा होता है , जहां पर हमें ये नहीं मालूम होता की Node का कोई children है या नहीं।
Data Sorting के लिए भी Recursive function use कर सकते हैं।
दूसरा File Directories को read करने के लिए , क्योंकि हमें नहीं मालूम होता है कि एक directory के अंदर सभी files ही है फिर उसके अंदर sub-directories और फिर उसके अंदर etc
#include <stdio.h>
// define recursive function.
void print_number(int number)
{
// print number.
printf("%i ,", number);
// increment by 1.
number++;
// if number is less than 100 then call the function.
if(number <= 100)
{
// call the same function.
print_number(number);
}
}
// main function.
int main() {
print_number(1);
return 0;
}
1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31 ,32 ,33 ,34 ,35 ,36 ,37 ,38 ,39 ,40 ,41,42 ,43 ,44 ,45 ,46 ,47 ,48 ,49 ,50 , 51 ,52 ,53 ,54 ,55 ,56 ,57 ,58 ,59 ,60 ,61 ,62 ,63 ,64 ,65 ,66 ,67 ,68 ,69 ,70 ,71 ,72 ,73 ,74 ,75 ,76 ,77 ,78 ,79 ,80 ,81 ,82 ,83 ,84 ,85 ,86 ,87 ,88 ,89 ,90 ,91 ,92 ,93 ,94 ,95 ,96 ,97 , 98 ,99,100 ,
ऊपर एक simple recursive function का example दिया गया है , example में 100 बार same function call हुआ है। example को आप ध्यान से देखेंगे तो पायंगे कि एक condition दी हुई है कि agar variable की value 100 से कम या बराबर है तभी function को call किया गया है।
❕ Note
देखा जाए तो Recursive Functions का work flow same as For Loop की तरह ही होता है , क्योंकि For Loop में भी execution एक specified condition तक repeat होता है। Condition false होने पर Loop end हो जाता था।
#include <stdio.h>
int get_factorial(int number)
{
if(number <= 1)
return 1;
else
return number*get_factorial(number-1);
}
// main function.
int main() {
printf("Factorial of 4 : %i \n", get_factorial(4));
printf("Factorial of 6 : %i \n", get_factorial(6));
printf("Factorial of 9 : %i \n", get_factorial(9));
printf("Factorial of 11 : %i \n", get_factorial(11));
printf("Factorial of 2 : %i \n", get_factorial(2));
return 0;
}
Factorial of 4 : 24 Factorial of 6 : 720 Factorial of 9 : 362880 Factorial of 11 : 39916800 Factorial of 2 : 2
Example में simply किसी number का factorial जानने के लिए code implement किया गया है , Example में एक condition दी है कि variable की value 1 से कम होने पर सिर्फ 1 ही return करता है , otherwise same function call होता रहेगा।
Recursive Function में Loop की तरह ही condition देना mandatory है , otherwise function infinite call करता रहेगा और page breach हो सकता है।
Recursive Functions , iterative program (like For Loop / While Loop ) के तुलना में काफी memory और time consume करते हैं। इसलिए ज्यादा जरूरी होने पर ही Recursive Functions का use करें।