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 :
n1etn2sont des entiers relatifs (négatifs, nuls ou positifs)-10^4 <= n1 <= 10^4et-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 validetabest 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 :
Truesitabcontientx,Falsesinon (doncFalsepourtab = [])