def rebours(n): if n == 0: print() return print(n, end=" ") rebours(n-1) rebours(12) def compte(t, n=1): print(n, end=" ") if n < t: compte(t, n+1) else: print() compte(5) def sommeDesCarres(n): if n == 1: return 1 return n**2 + sommeDesCarres(n-1) def produit(liste): if len(liste) == 1: return liste[0] return liste[0] * produit(liste[1:]) def sommeDesPositifs(liste): if len(liste) == 0: return 0 value = liste[0] if liste[0] > 0 else 0 return value + sommeDesPositifs(liste[1:]) def estPalindrome(x): if len(x) == 2: return x[0] == x[1] elif len(x) == 1: return True return x[0] == x[-1] and estPalindrome(x[1:-1]) def renvoitLongueur(liste: list) -> int: """ Fonction récursive qui renvoie la longueur de la liste donné en paramètres sans utiliser la fonction `len` """ if not liste: # Si la liste est vide return 0 # On renvoie 0 return 1 + renvoitLongueur(liste[1:]) # On renvoie 1 plus la longueur de la liste sans le premier element def inverse_lordre(liste: list) -> list: """ Fonction récursive qui renvoie l'inverse de la liste donnée en paramètres sans utiliser la fonction `reverse` """ if not liste: # Si la liste est vide return [] # On renvoie une liste vide # On renvoit la concatenation d'une liste contenant le dernier element # de `liste` avec l'inverse de la `liste` sans le dernier element return [liste[-1]] + inverse_lordre(liste[:-1])