Essayons de créer une fonction récursive terminale calculant ,
comme cette valeur s'obtient par des multiplications successives,
l'accumulateur
est une valeur par lequel le résultat sera
multiplié. Nous souhaitons donc mettre un point une fonction
qui retourne
. On obtiendra
en
initialisant
à
. On détermine une relation de récurrence entre
et
de la sorte :
, donc
, à savoir
. Allons-y,
Prouvons par récurrence sur que
.
On calcule donc en invoquant
. On redéfinit
de la sorte :
Vous avez des doutes ? Traduisez donc ces sous-programmes en C en observez ce qui se passe...