Recursion occurs when a function calls itself.
2 Rules of Recursion:
- Must have a base case
- Must make progress toward that base case
Example of Recursion (Factorial Implementation):
#include <stdio.h>
#include <assert.h>
int factorial(unsigned int n) {
if (n == 0) // Base case
return 1;
else
return n * factorial(n - 1);
}
int main(void) {
assert(factorial(0) == 1);
assert(factorial(1) == 1);
assert(factorial(6) == 720);
}