Source: https://www.iro.umontreal.ca/~dift1063/fibonacci2.pdf