Aller au contenu

Maximum⚓︎

Écrire une fonction maximum :

  • prenant en paramètre une liste non vide de nombres : nombres
  • renvoyant le plus grand élément de cette liste.

Chacun des nombres utilisés est de type int ou float.

:warning: On interdit ici d'utiliser max, ainsi que sort ou sorted.

Exemples

🐍 Console Python
>>> maximum([98, 12, 104, 23, 131, 9])
131
>>> maximum([-27, 24, -3, 15])
24
###
# Testsbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nl# Tests supplémentairesbksl-nlassert maximum([1, 2, 3, 4, 5]) == 5bksl-nlassert maximum([5, 4, 3, 2, 1]) == 5bksl-nlassert maximum([5, 5, 5]) == 5bksl-nlassert abs(maximum([5.01, 5.02, 5.0]) - 5.02) < 10py-strpy-str-6bksl-nlassert maximum([-5, -4, -3, -8, -6]) == -3bksl-nlbksl-nl 5/5

def maximum(nombres):bksl-nl ...bksl-nlbksl-nlbksl-nl# Testsbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nlbksl-nldef maximum(nombres):bksl-nl maxi = nombres[0]bksl-nl for x in nombres:bksl-nl if x > maxi:bksl-nl maxi = xbksl-nl return maxibksl-nlbksl-nlbksl-nl# Testsbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nlbksl-nlbksl-nl

A

Commentaires⚓︎

Il s'agit d'une recherche de maximum classique. La liste étant non-vide, on initialise la variable maxi avec la première valeur.

{{ py('exo_corr', 0, '# TESTS') }}

Variante récursive⚓︎

🐍 Script Python
def maximum(nombres):
    if len(nombres) == 1:
        return nombres[0]
    dernier = nombres.pop()
    maxi = maximum(nombres)
    nombres.append(dernier)
    if dernier > maxi:
        return dernier
    else:
        return maxi

On prend soin, ici, de reconstruire la liste après l'appel récursif.

Z