Solution to problem 2
Problem 3 solution
A much better fibonacci implementation