TD 1 - Récursivité
TD 1 - Récursivité
TD 1 - Récursivité
TD1 : Récursivité
Exercice1
Ecrire les versions itératives puis récursives des fonctions et des procédures qui calculent le
nième terme de la suite définie par :
U0 = 2
Un = 3Un-1/(Un-1+5) pour n > 0
Exercice 2
void Affichage()
{
int i ;
for(i=1 ;i<=10 ;i++)
printf(‘’%d’’,i) ;
}
Exercice 3
Ecrire une fonction récursive permettant de convertir un nombre N donné (en base 10)
en une base b (2 b 10).
Exercice 4
Ecrire une fonction récursive qui calcule la longueur de la représentation décimale d'un
entier N.
Exemple : longueur(64589) = 5
Exercice 5
1- Ecrire une fonction itérative qui calcule la factorielle d’un nombre entier N.
N ! = 1*2*3*…..*(N-1)*N
2- Transformer cette fonction en une fonction récursive.
Exercice 6
Ecrire une fonction récursive qui calcule la somme des éléments d'un tableau T de n entiers.
Ecrire une fonction récursive qui calcule la somme des éléments d'un tableau à partir d'une
position i.
Algorithmique, Structures de
1ère année LBC Données et Programmation 2
Exercice 7
Soit une chaine « CH », on vous demande d’écrire les procédures/ fonctions récursives
suivantes :
1- Une procédure Envers (CH : chaine, L : entier) qui affiche la chaine CH à l’envers
sans changer son contenu.
2- Une fonction Palindrome (ch : chaine, debut,fin : entier) qui retourne 1 si CH est
palindrome, 0 sinon. Un palindrome est un mot qui reste le même qu’on le lise de
gauche à droite ou de droite à gauche.
Exercice 8
Ecrire une procédure récursive qui lit une liste de caractères, qui se termine par un '#', et
l'affiche à l'envers.
Ecrire une procédure récursive qui lit une liste d'entiers positifs, qui se termine par 0, et
affiche les sommes de la fin vers le début.
Exemple :
On lit la liste 3, 2, 5, 6, 1, 4, 0.
La procédure affiche 0, 4, 5, 11, 16, 18, 21.
Exercice 9
Exemple :
PGCD(36,20) = PGCD(20,16) = PGCD(16,4) = 4
Exercice 10
Ecrire une fonction récursive (Recherche) qui vérifie si un entier x est présent dans un tableau
T de n entiers.
Reprendre cette fonction si le tableau T est trié dans un ordre croissant.
Exercice 11
Exercice 12
Ecrire une fonction récursive CNP qui calcule le nombre de combinaisons de p éléments pris
parmi n éléments différents par la formule suivante :
𝐶𝑛1 = 𝑛
Algorithmique, Structures de
1ère année LBC Données et Programmation 2
𝐶𝑛𝑛 = 1
𝑝 𝑝 𝑝−1
𝐶𝑛 = 𝐶𝑛−1 + 𝐶𝑛−1
En utilisant la fonction CNP, afficher le triangle de Pascal d'ordre N donné, sans passer par un
tableau.
Exercice 13
Ecrire une fonction récursive qui réalise l'intersection de deux tableaux A et B (l'intersection
est un tableau C qui contient les éléments communs aux deux tableaux).
Exercice 14
Ecrire une fonction récursive qui calcule la somme des n premiers entiers (1+2+…+n).
Ecrire une fonction récursive qui multiplie un entier A par un entier positif B (en utilisant
l'opération d'addition).
Ecrire une fonction récursive qui élève un entier A à la puissance d'un entier B.
Exercice 15
𝑈0 = 2
{ 𝑈1 = 3
𝑈𝑛 = 𝑈𝑛−1 + 2 ∗ 𝑈𝑛−2 (𝑛 ≥ 2)
Exercice 16
Exercice 17
Algorithmique, Structures de
1ère année LBC Données et Programmation 2
Écrire une fonction qui prend en entrée un entier n et une paire de valeurs réelles qui
sont en fait les
valeurs du cosinus et du sinus d’un certain angle x, et qui renvoie la paire (cos(nx),
sin(nx)). Autrement
dit, le deuxième argument de la fonction est une paire (a,b) telle que a = cosx et b = sinx.
Le schéma de
calcul doit bien évidemment être récursif. On pourra se servir des formules de
trigonométrie suivantes :
cos(nx) = cos ((n − 1)x) cos(x) − sin ((n − 1)x) sin(x)
sin(nx) = sin ((n − 1)x) cos(x) + cos ((n − 1)x) sin(x)
Exercice 18
Ecrire et concevoir une fonction récursivequi, à partir d’un entier positif n ne contenant
aucun 0 dans ses chiffres, renverse les chiffres de cet entier. Par exemple l’image de
356457 par cette fonction serait
754653.
Exercice 19
Exercice 20
Exercice 21
Exercice 22
Ecrire une version récursive de la fonction qui calcule le nième terme de la suite de Fibonacci.
Exercice 23
Ecrire une fonction récursive qui calcule la somme des chiffres de la représentation
décimale d'un entier N.
Exemple : som_chiffres(64589) = 32