Source: https://informatique.lmrl.lu/Exercices/Exercices_recursivite.pdf