recursive algorithm
in programming, a recursive function is usually a term that describes functions that call themselves
consider factorial
def fac(n):
if n == 1: return 1
else: return fac(n-1) * n