Aller au contenu

Correction de l'épreuve 3

Sujet (PDF intégré)

Exercice 1

def fibonacci(n):
    if n <= 2 :
        return 1   
    else :
        return fibonacci(n-1) + fibonacci(n-2)
Ou
def fibonacci(n):
    d = {}
    d[1] = 1
    d[2] = 1
    for k in range(3, n+1):
        d[k] = d[k-1] + d[k-2]
    return d[n]
dict_fibo = {1:1, 2:1}
def fibonacci(n):
    if n in dict_fibo:
        return dict_fibo[n]
    dict_fibo[n] = fibonacci(n-1) + fibonacci(n-2)
    return dict_fibo[n]

Exercice 2

def eleves_du_mois(eleves, notes):
    note_maxi = 0
    meilleurs_eleves =  []

    for i in range(len(eleves)) :
        if notes[i] == note_maxi :
            meilleurs_eleves.append(eleves[i])
        elif notes[i] > note_maxi:
            note_maxi = notes[i]
            meilleurs_eleves = [eleves[i]]

    return (note_maxi, meilleurs_eleves)

Commentaires éventuels

Pour le 1er exercice, la 3eme version est celle à privilégier pour faire quelque chose d'élégant, cependant vous pouvez quand même avoir tous les points avec la version la plus simple. L'exercice 2 est moche dû à l'utilisation du append, mais bon.

Précédent | Suivant