https://medium.com/@frankluo2005/9-fibonacci-algorithms-the-most-complete-solutions-all-in-one-graphical-easy-to-understand-57cf7a460fa