Writing these notes while I cringe and procrastinate. Yes, recursion is useful, so is my pet cat. Covers the general concept of recursion.
Definition
A recursive function, is a function that calls itself till a certain condition is met. A break criteria is necessary so that the function does not call itself infinitely.
So you can express operations in terms of itself.
A simple example is:
#include <iostream>
using namespace std;
void recurse (int count) // Each call gets its own count
{
cout<< count <<"\n";
recurse ( count + 1 );
}
int main()
{
recurse ( 1 ); //First function call, so it starts at one
}
2 parts of a recursive function
- Base case (the condition that stops the recursion process)
- Recalling condition (the condition that causes the function to call itself)
Example
The classic example is calculating the factorial of a number.
#include <iostream>
using namespace std;
//Factorial function
int f(int n){
/* This is called the base condition, it is
* very important to specify the base condition
* in recursion, otherwise your program will throw
* stack overflow error.
*/
if (n <= 1)
return 1;
else
return n*f(n-1);
}
int main(){
int num;
cout<<"Enter a number: ";
cin>>num;
cout<<"Factorial of entered number: "<<f(num);
return 0;
}
Top comments (0)