La factorielle de n
se note n!
et est définie comme :
def factorielle(n):
if n == 0: # Cas de base
return 1
else: # Cas récursif
return n * factorielle(n - 1)
print(factorielle(5)) # Affiche 120
def fibonacci(n):
if n <= 1: # Cas de base
return n
else: # Cas récursif
return fibonacci(n - 1) + fibonacci(n - 2)
fibonacci(4)
fibonacci(4)
→ fibonacci(3) + fibonacci(2)
→ (fibonacci(2) + fibonacci(1)) + (fibonacci(1) + fibonacci(0))
→ (1 + 1) + (1 + 0) = 3
RecursionError
.Créer une fonction somme(n)
qui retourne la somme de 1 à n.
def somme(n):
if n == 0:
return 0
else:
return n + somme(n - 1)
print(somme(5)) # 15
Créer une fonction compter(n)
qui affiche tous les nombres de n à 0.
def compter(n):
if n < 0:
return
print(n)
compter(n - 1)
compter(5)
Créer une fonction puissance(x, n)
qui retourne x
puissance n
.
def puissance(x, n):
if n == 0:
return 1
else:
return x * puissance(x, n - 1)
print(puissance(2, 3)) # 8
Créer une fonction récursive est_palindrome(mot)
.
def est_palindrome(mot):
if len(mot) <= 1:
return True
if mot[0] != mot[-1]:
return False
return est_palindrome(mot[1:-1])
print(est_palindrome("radar")) # True
print(est_palindrome("python")) # False
Élément | Rôle |
---|---|
Cas de base | Condition d'arrêt de la récursion |
Cas récursif | Appel de la fonction à elle-même avec n - 1 |
return |
Permet de remonter les résultats des appels |
Récursion | Alternative aux boucles pour certains problèmes |