fib2
uses a lot more function calls. fib1(10)
calls fib1
about 12 times if I counted properly (fib1(10)
, fib1(10, 0, 1)
, fib1(9, 1, 1)
, fib1(8, 1, 2)
, etc.) while fib2
calls fib2(10)
, fib2(9)
, fib2(8)
, fib2(8)
, fib2(7)
, fib2(7)
, fib2(6)
, etc.). The difference is in the algorithm, not in tail or non-tail recursion.
3 Likes