Recursion is when a function calls itself — either directly or indirectly!
This can be difficult/tricky because...well, when do you stop calling yourself? *eek*
Recursion directly correlates to both mathematical induction and recurrence relations from math. As in those systems, you will need to identify:
The four rules of programming with recursion are:
Another — albeit similar — view is this one:
given an initial problem of size n
unless n is minimal,
break this into several smaller \__ reduction
problems of the same nature / step
and apply this approach to \__ recursive
each / call
put the smaller case answers \
back together to answer our |__ build
size n problem -- include | phase
any size n specific info /
else
just use a canned response for \__ base
simple case(s) / case(s)