:: Enseignements :: ESIPE :: E3INFO :: 2013-2014 :: Algorithmique ::
[LOGO]

Récursivité terminale


Ce TP permet de manipuler de se familiariser avec l'écriture d'algorithmes simples dans leur version itérative et récursive. Pour chaque problème ci-dessous, écrire une fonction récursive et une fonction itérative qui le résolvent.

Exercice 1 - Factorielle

On veut calculer la fonction factorielle d'un entier positif ou nul n, notée n!, qui est définie par
n! = 1 si n=0
n! = (n-1)! * n si n>0
Remarque: n! dépasse rapidement 231-1

Exercice 2 - Suite

On veut écrire une fonction qui affiche les n premiers entiers positifs dans l'ordre croissant et une autre qui les affiche dans l'ordre décroissant.

Exercice 3 - Somme des chiffres

On souhaite écrire une fonction SommeChiffre qui prend en argument un entier n et qui calcule la somme des chiffres qui le forment.
Par exemple SommeChiffre(912942) renvoit 27.

Exercice 4 - Chiffre de la somme des chiffres

On souhaite maintenant écrire une fonction ChiffreSommeChiffre qui répète le calcul précédent sur son résultat tant que ce résultat est un nombre qui n'est pas un chiffre.
Par exemple ChiffreSommeChiffre(912942) renvoit 9 car SommeChiffre(912942) vaut 27 et que SommeChiffre(27) vaut 9.

Exercice 5 - Palindrome

On veut écrire une fonction qui détermine si une chaîne de caractères est un palindrome.
Par exemple, a, aba, abba, radar et esoperesteetserepose sont des palindromes.

Exercice 6 - Puissance de n

On veut écrire une fonction qui calcule np mod N pour n, p et N entiers tels que p >= 0 et N > 0.
On écrira une version linéaire et une version logarithmique.

Exercice 7 - Fibonacci

On veut écrire une fonction qui calcule le nième nombre de Fibonacci.