Écrire une fonction python récursive :
Entrée | Un entier naturel n. |
---|---|
Sortie | L'affichage des entiers n, n-1, n-2, ..., 1. |
- principe récursif
- une solution
- Si n = 0, on n'affiche rien et on stoppe.
- Si n > 0, on affiche la valeur de n et pour poursuivre, il suffit de lancer le compte à rebours sur l'entier n-1.
Une solution Python :
def compteARebours(n) :
if n <= 0 : pass
else :
print(n, end=" ")
compteARebours(n-1)
compteARebours(5)
Il faut toujours faire attention à ce que les appels récursifs finissent par s'arrêter.
Ici, il est assez simple de s'en persuader : à chaque appel récursif, l'argument est décrémenté d'une unité.
Cette valeur finira donc par être égale à 0, et dans ce cas la fonction s'arrête (en exécutant l'instruction
pass
).
Remarques.
pass
peut-être traduit par "ne rien faire".print(n, end=" ")
affiche la valeur de n puis un blanc (sans passer à la ligne suivante).
Il revient au même d'écrire :
def compteARebours(n) :
if n > 0 :
print(n, end=" ")
compteARebours(n-1)
compteARebours(5)