Aller au contenu

Index des sujets 2023

Corrigé sujet 39 - Année : 2023

Sujet 39 - 2023

Exercice 1

1
2
3
4
5
def fibonacci(n):
    d = {1 : 1, 2 : 1}
    for k in range(3, n+1):
        d[k] = d[k-1] + d[k-2]
    return d[n]

Commentaires

  • On peut aussi utiliser une liste, mais les indices sont alors décalés (le premier élément d'une liste a pour indice 0 alors que le premier élément de la suite a pour indice 1. L'utilisation d'un dictionnaire simplifie le problème.

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def pantheon(eleves, notes):
    note_maxi = 0
    meilleurs_eleves = [] #(1)
    for i in range(len(eleves)): #(2)
        if notes[i] == note_maxi:
            meilleurs_eleves.append(eleves[i]) #(3)
        elif notes[i] > note_maxi: 
            note_maxi = notes[i]
            meilleurs_eleves = [eleves[i]] #(4)
    return (note_maxi, meilleurs_eleves)
  1. Les notes sont positives, donc la maximum est initialisé à 0 et la liste des élèves ayant cette note pour le moment a vide
  2. On parcourt la liste des élèves
  3. Si on en trouve un qui a la note maximum alors on l'ajoute à la liste de ceux ayant cette note
  4. Si on en trouve un qui a une meilleur note que le maximum courant alors on met à jour le maximum et la liste des élèves ayant eu cette note ne contient pour le moment qu'un élève : celui qui a obtenu cette nouvelle note maximale.