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)