Vous êtes sur la page 1sur 3

IPEI EL MANAR Environnement de développement Python 3 Année universitaire : 2015/2016

Série récursivité
Exercice n°1 :
 Réecrire l'algorithme d'Euclide avec comme seule opération autorisée la soustraction. Si x et y sont
deux entiers positifs :
-pcgd(x,y)=pcgd(y,x) si x<y
-pcgd(x,y)=pcgd(x-y,y) sinon
 Réecrire la fonction d'exponentiation rapide sans recours aux variables locales

Exercice n°2 :
Écrire un sous-programme récursif qui calcule la somme des n premiers carrés. Par exemple, si n vaut 3,
ce sous-programme calculera 12+ 22+ 32. Ce sous programme n’est défini que pour un n supérieur à 0.

Exercice n°3:
Écrire un programme récursif permettant le calcul de la somme des chiffres d'un entier positif passé en
paramètre. Donner la version itérative et comparer l'efficacité.

Exercice n°4:
Ecrire un sous-programme récursif qui calcule la somme des éléments positifs d’une séquence.

Exercice n°5 : « Palindrôme »


Ecrire un sous-programme récursif qui vérifie si une chaîne de caractère est un palindrôme ou non.
Rappel : un palindrôme est un mot qui se lit de la même façon de gauche à droite et de droite à gauche.
Exemple Maram, SOS

Exercice n°6 :
Ecrire un sous-programme récursif qui calcule la valeur numérique d’une chaîne de caractères composée
de chiffres.

Exercice n°7
Écrire une fonction récursive chiffre( n, k) qui permet de retourner le k-ième chiffre à partir de la droite
d'un entier positif n.
Exemples :
Le 3ième chiffre à partir de la droite de 8724 est 7
Le 5ième chiffre à partir de la droite de 21327 est 2

Exercice n°8 :
Ecrire un sous-programme récursif qui réarrange les éléments d’une liste en ordre inverse.

Exercice n°9 :
Ecrire une fonction récursive qui permet de calculer la valeur d'un polynôme P(x).
La fonction CalculPoly accepte deux paramètres P (liste de coefficients du polynôme) et x un nombre
réel.

Classe : 1ère Année MP, PC, PT Page 1


IPEI EL MANAR Environnement de développement Python 3 Année universitaire : 2015/2016

correction
Exercice n°1 :
Exercice n°2 :
def Somme (s):
'''un sous-programme récursif qui calcule la somme des carrés .'''
if s==0:
return 0
else:
return s*s+Somme(s-1)

Exercice n°3 :
def somChiffre( n ):
if ( n < 10 ):
return n
else:
return n % 10 + somChiffre ( n // 10 )

Exercice n°4:
def SomEltPositifs(s):
if len(s)==0:
return 0
else:
return s[0]+SomEltPositifs(s[1:])

Exercice n°5 :
def palindrome(ch):
if len(ch) < 2:
return True
if ch[0] != ch[-1]:
return False
return palindrome(ch[1:-2])

Exercice n°6 :
def ValNumChaine(ch):
try:
if not ch.isdigit():
print('la chaîne doit être composée uniquement de chiffres')
elif len(ch)==1:
return int(ch[0])
else:
return int(ch[-1])+(ValNumChaine(ch[:-1])*10)

EXERCICE 7 :
def k_chiffre ( n, k ):
lg=len(str(n))
if k == 1:
return n % 10
elif k>lg:
print(n,'ne contient pas',k,'chiffres')
else:
return k_chiffre ( n //10, k- 1 )
Classe : 1ère Année MP, PC, PT Page 2
IPEI EL MANAR Environnement de développement Python 3 Année universitaire : 2015/2016

Exercice n°8 :
def rev(l):
if len(l) == 0:
return []
return [l[-1]] + rev(l[:-1])

Exercice n°9 :
def CalculPoly(p,x):
if len(p)==1:
return p[0]
return p[0]+x*CalculPoly(p[1:],x)

Classe : 1ère Année MP, PC, PT Page 3

Vous aimerez peut-être aussi