Multiplication par additions - Sujet 09 - EP NSI 2025

Moyen Officiel
Python (3.14.0)

Énoncé du problème

Exercice 1

EXERCICE 1 (10 points)

Programmer la fonction multiplication, prenant en paramètres deux nombres entiers relatifs n1 et n2, et qui renvoie le produit de ces deux nombres.

Les seules opérations autorisées sont l’addition et la soustraction.

>>> multiplication(3, 5)
15
>>> multiplication(-4, -8)
32
>>> multiplication(-2, 6)
-12
>>> multiplication(-2, 0)
0

Exercice 2

EXERCICE 2 (10 points)

On s’intéresse dans cet exercice à la recherche dichotomique dans un tableau trié d’entiers.

Compléter la fonction suivante en respectant la spécification.

def dichotomie(tab, x):
    """
    tab : tableau d'entiers trié dans l'ordre croissant
    x : nombre entier
    La fonction renvoie True si tab contient x et False sinon
    """
    debut = 0
    fin = len(tab) - 1
    while debut <= fin:
        m = ...
        if x == tab[m]:
            return ...
        if x > tab[m]:
            debut = m + 1
        else:
            fin = ...
    return ...

Exemples :

>>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33],28)
True
>>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33],27)
False

Les contraintes ci-dessous sont ajoutées par la plateforme et ne font pas partie du sujet.

Exercice 1

Contraintes :

  • n1 et n2 sont des entiers relatifs (négatifs, nuls ou positifs)
  • -10^4 <= n1 <= 10^4 et -10^4 <= n2 <= 10^4
  • La fonction renvoie un entier égal au produit n1 * n2
  • Seules l’addition et la soustraction sont autorisées : l’opérateur * est interdit

Exercice 2

Contraintes :

  • 0 <= len(tab) <= 10^5, le tableau vide [] est une entrée valide
  • tab est un tableau d’entiers trié dans l’ordre croissant
  • -10^9 <= tab[i] <= 10^9
  • -10^9 <= x <= 10^9
  • La fonction renvoie un booléen : True si tab contient x, False sinon (donc False pour tab = [])