Initiation à l'algorithmique

Notification de cookies

Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Plus d'informations

Exercices corrigés sur les fonctions récursives -TD1-

Expliquez les fonctionnalités des fonctions suivantes.

Exercice 1

                fonction fct1(x,y)
                    SI x==0 ALORS
                        retourne y
                    SINON
                        retourne fct1(x-1,x+y)
                    FINSI
            
                def fct1(x,y):
                    if x==0:
                        return y
                    else:
                        return fct1(x-1,x+y)
            
Corrigé :
La fonction fct1() calcule et retourne ((1 + 2 ... + x-1 + x) +y) qui est (x(x+1)/2) + y. Par exemple, si x est 5 et y est 2, alors fct1 devrait retourner 15 + 2 = 17.

Exercice 2

                    fonction fct2(n)
                        SI n=1 ALORS
                            retourne 0
                        SINON
                            return 1+fct2(n/2)
                        FINSI
                
                    def fct2(n):
                        if n==0:
                            return 0
                        else:
                            return 1+fct2(n//2)
                
Corrigé :
La fonction calcule et renvoie le plus grand entier inférieur ou égal à log2(n). Par exemple, si n est entre 8 et 15, fct2() renvoie 3. Si n est entre 16 et 31 alors fct2() renvoie 4.

Exercice 3

                        fonction fct3(n)
                            SI n=0 ALORS
                                retourne
                            FINSI
                            fct3(n/2)
                            Ecrire(n%2)
                    
                        def fct3(n):
                            if n==0:
                                return
                            fct3(n//2)
                            print(n % 2, end=" ")
                    
Corrigé :
La fonction fct3() affiche l'équivalent binaire d'un nombre n.
Par exemple, si n est 21, alors fct3() affiche 10101.

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most difficult thing is how to design efficient algorithms for real-world problems, so don't be a programmer, be a problems solver.

Cours Similaires :