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)