जैसा कि हम जानते हैं, function हमेशा अपनी definition को call करता है लेकिन recursion में, function खुद को call करता है ।।
इस प्रकार के mechanism को C ++ में Recursion कहा जाता है और function को Recursive function कहा जाता है।
यहाँ recursion का diagram दिया गया है –
उपरोक्त diagram में, सभी तीन function (function -name ) के नाम समान होंगे।
यह एक तरह से loop की तरह व्यवहार करता है यानी function definition में ही function call method होता है। recursion में, function definition से स्वयं को फिर से call करता है।
syntax
function-name(parameter-list) // function definition
{
Body of function;
function-name(parameter-list);. // calling function
}
चलिए इसे एक उदाहरण से समझते हैं –
void table(int); // function prototype
.............
.............
void table(int n) // function definition
{
Body of function;
table(n);. // recursive function
}
recursion program in C++
इस Program में, function तब तक खुद को call करेगा जब तक कि दी गई condition false नहीं हो जाती है यानी user जैसे ही 0 input करेगा function calling समाप्त हो जाएगा।
#include<iostream.h>
#include<conio.h>
void table(int); // function declaration
void main()
{
clrscr();
int num; // variable declaration
cout<<"Enter a number: ";
cin>>num;
recursn(num); // function calling
getch();
}
void table(int n) // function definition
{
cout<<n<<" ";
n--; // value decrease 1 by 1
if(n!=0) // condition check
recursn(n); // function call itself
}
OUTPUT
Enter a number: 5
5 4 3 2 1
यहाँ एक अन्य उदाहरण दिया गया है जिसमे हम एक table print करते हैं,-
Print Table using recursion in C++
#include<iostream.h>
#include<conio.h>
void table(int,int);
void main(void)
{
int n,i=1;
cout<<"Enter number: ";
cin>>n;
table(n,i); // function calling with two argument(n,i)
getch();
}
void table(int x,int y)
{
for(int i=y; i<=10; i++)
cout<<x*i<<endl;
if(i<=10) // recursive function call until condition false
table(x,i);
}
OUTPUT
Enter number: 3
3
6
9
12
15
18
21
24
27
30
Explanation
उपरोक्त Program में table(x, i) एक recursive function है जबकि यह प्रक्रिया recursion कहलाएगी है।