GI1 - ESTC
Structures de données
TD 2 : Récursivité
Exercice 1 :
Ecrire une procédure récursive void affiche_entiers(int n, int m) qui affiche la séquence
d'entiers compris entre n et m. Tester ensuite votre procédure.
affiche_entiers(3, 7) ---> 3 4 5 6 7
affiche_entiers(8, 5) ---> 5 6 7 8
Exercice 2 :
Ecrire une procédure récursive void affiche_miroir(char *mot) qui affiche la chaîne mot de
manière inversée (en commençant par le dernier caractère).
Exercice 3 :
On appelle suite de Syracuse N, la suite définie par :
si n est pair.
si n est impair.
Quel que soit le nombre entier non nul choisi au départ, on finit toujours par obtenir 1 dans la
suite obtenue avec l’algorithme de Collatz.
Écrire une fonction récursive Syracuse qui calcule les itérations successives sur un entier
donné en argument, jusqu’à trouver 1.
Exercice 4 :
Écrivez une fonction int compte (char c, char * s) qui compte le nombre d’occurrences d’un
caractère c dans une chaîne s. La fonction devra être récursive. Écrivez un programme pour
tester cette fonction.
Exercice 5 :
Ecrire les fonctions récursives suivantes :
1. Ecrire une fonction int somme(int a, int b) qui calcule la somme des entiers de a à
b.
1
GI1 - ESTC
2. Ecrire une fonction int sommei(int n) qui permet de calculer la somme des entiers
impairs entre 0 et n.
3. Ecrire une fonction int tester(int d, int n) qui permet de tester si le chiffre d apparaît
dans le nombre n.