Source: https://malaspinas.academy/prog_seq_c_tp/short_exercises/recursivity.pdf