Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Somme récursive d'une liste
Pour bien comprendre la recursion, voici un exercice tout simple : calculer la somme d'une liste sans boucle et sans la fonction sum.
L'idee récursive :
- La somme d'une liste vide est 0 (cas de base)
- La somme d'une liste non vide = premier élément + somme du reste de la liste
Par exemple, somme_recursive([1, 2, 3]) se decompose ainsi :
1 + somme_recursive([2, 3])
1 + 2 + somme_recursive([3])
1 + 2 + 3 + somme_recursive([])
1 + 2 + 3 + 0 = 6
En Python, lst[0] donne le premier élément, et lst[1:] donne le reste de la liste (tous les éléments sauf le premier).
Écris une fonction somme_recursive(lst) qui calcule la somme sans boucle ni sum.
Exemple :
somme_recursive([1, 2, 3, 4, 5]) renvoie 15
somme_recursive([]) renvoie 0
Tests (3/4)
Liste normale
assert somme_recursive([1, 2, 3, 4, 5]) == 15
Liste vide
assert somme_recursive([]) == 0
Un élément
assert somme_recursive([42]) == 42
+ 0 tests cachés
Solution officielle
def somme_recursive(lst):
if not lst:
return 0
return lst[0] + somme_recursive(lst[1:])
solution.py