Vous êtes sur la page 1sur 2

Université de Sousse

Matière : Informatique
Ecole Supérieure des Sciences
Niveau : PC 1 / MP1
et des Technologies de Hammam Sousse
A.U. : 2023/2024
Département Electronique et Informatique

TD : La récursivité en Python

Exercice 1
Ecrire une fonction récursive pgcd_rec qui calcule le pgcd de deux entiers positifs x et yen se
basant sur l'algorithme d'Euclide :
𝑝𝑔𝑐𝑑(𝑎, 𝑏) = 𝑎 𝑠𝑖 𝑎 = 𝑏
𝑝𝑔𝑐𝑑(𝑎, 𝑏) = 𝑝𝑔𝑐𝑑(𝑎 − 𝑏, 𝑎)𝑠𝑖 𝑎 > 𝑏
𝑝𝑔𝑐𝑑(𝑎, 𝑏) = 𝑝𝑔𝑐𝑑(𝑎, 𝑏 − 𝑎)𝑠𝑖 𝑏 > 𝑎
Exercice 2
Ecrire une fonction récursive somme_rec qui calcule la somme des n premiers carrés.
Exercice 3
Ecrire un programme récursif somme_chiff_rec qui calcule la somme des chiffres d'un entier
positif passé en paramètre.
Exercice 4
𝒑
Ecrire une fonction récursive comb_rec permettant de calculer les combinaisons 𝑪𝒏 en se
servant de la relation suivante :
1 𝑠𝑖 𝑝 = 0 𝑜𝑢 𝑝 = 𝑛
𝐶 =
𝐶 + 𝐶 𝑠𝑖𝑛𝑜𝑛
Exercice 5 :
On considère la suite définie par :
𝑢 =2
1 2
𝑢 = 𝑢 +
2 𝑢
Ecrire deux fonctions récursives suite_rec1 et suite_rec2 permettant de calculer 𝒖𝒏
Exercice 6
Ecrire une fonction récursive hornerrec(a,x) qui permet de calculer la valeur d’un polynôme
suivant l’algorithme de Hôrner.
A étant une liste composée par les n coefficients.

𝑃(𝑥) = 𝑎 + 𝑎 𝑥 + ⋯ + 𝑎 𝑥 = 𝑎 + 𝑥 𝑎 + 𝑥 𝑎 + 𝑥 𝑎 + ⋯ + 𝑥(𝑎 + 𝑎 𝑥)

Page 1
Exercice 7
Soit la fonction MystereRec(L, k) suivante où L est une liste d'entiers non vide et k tel que
0 ≤ k <len(L).
def MystereRec(L,k) :
if k == len(L)-1:
return True
else:
if L[k] > L[k+1]:
return False
else:
return MystereRec(L,k+1)

1) Soit L = [6, 9, 4, 8, 12]


a. Que retourne MystereRec(L, 2) (Donner la liste des appels récursifs) ?
b. Que retourne MystereRec(L, 0) (Donner la liste des appels récursifs) ?
2) Que fait la fonction MystereRec dans le cas général ?
Exercice 8
1. Ecrire une fonction récursive TailleListe qui prend en argument une liste et retourne le
nombre d'éléments qu'elle contient.
2. Ecrire une fonction récursive SommeListe qui prend en argument une liste et retourne la
somme des éléments qu'elle contient.
3. Ecrire une fonction de nom AffListe qui affiche les éléments de la liste passée en
paramètre.
4. Ecrire une fonction récursive de nom AffListeInv qui affiche, dans l'ordre inverse, les
éléments de la liste passée en paramètre.
Exercice 9
Ecrire une fonction récursive copie_rec qui retourne une copie de la chaine de caractères ch
(copiée caractère par caractère).
Exercice 10
Ecrire une fonction récursive palind_rec qui vérifie si une chaîne de caractères est un
palindrome ou non.
Un palindrome est un mot qui se lit de la même façon de gauche à droite et de droite à gauche.
Exemple : Maram, SOS

Page 2

Vous aimerez peut-être aussi