Aller au contenu

Multiplication sans *⚓︎

Programmer la fonction multiplication :

  • prenant en paramètres deux nombres entiers a et b,

  • renvoyant le produit de ces deux nombres.

Exemples

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

Contrainte

Les seules opérations autorisées sont l'addition et la soustraction !

Indications
  • On rappelle que si \(n\) est un nombre négatif, \(-n\) est un nombre positif.

  • On a \(5 \times (-3) = -5\times 3=0 +(- 5)+(- 5)+(- 5)\) !

###
from itertools import productbksl-nlbksl-nl# Testsbksl-nlassert multiplication(3, 5) == 15bksl-nlassert multiplication(-4, -8) == 32bksl-nlassert multiplication(-2, 6) == -12bksl-nlassert multiplication(3, -4) == -12bksl-nlassert multiplication(-2, 0) == 0bksl-nlbksl-nl# Tests supplémentairesbksl-nlbksl-nlpremiers = [a for a in range(-10, 11)]bksl-nlseconds = [a for a in range(-10, 11)]bksl-nlfor a, b in product(premiers, seconds):bksl-nl assert multiplication(a, b) == apy-strb, f"Erreur sur le produit {a}py-str{b}"bksl-nlbksl-nlbksl-nlclass Entier(int):bksl-nl def py-undpy-undmulpy-undpy-und(self, valeur):bksl-nl raise Exception(bksl-nl f"Vous avez utilisé la multiplication... C'est explicitement interdit !")bksl-nlbksl-nl def py-undpy-undfloatpy-undpy-und(self, /):bksl-nl raise Exception(bksl-nl f"Vous avez essayé de convertir le nombre en un 'float'... Pourquoi ?")bksl-nlbksl-nl def py-undpy-undintpy-undpy-und(self, /):bksl-nl raise Exception(bksl-nl f"Vous avez essayé de convertir le nombre en un 'int'... Pourquoi ?")bksl-nlbksl-nlbksl-nl def py-undpy-undpowpy-undpy-und(self, valeur, mod=None, /):bksl-nl raise Exception(bksl-nl f"Vous avez utilisé la puissance... qui est une multiplication !")bksl-nlbksl-nl def py-undpy-undrmulpy-undpy-und(self, valeur, /):bksl-nl raise Exception(bksl-nl f"Vous avez utilisé la multiplication... C'est explicitement interdit !")bksl-nlbksl-nl def py-undpy-undrpowpy-undpy-und(self, value, mod=None, /):bksl-nl raise Exception(bksl-nl f"Vous avez utilisé la puissance... qui est une multiplication !")bksl-nlbksl-nl def py-undpy-undstrpy-undpy-und(self, /):bksl-nl raise Exception(bksl-nl f"Vous avez essayé de convertir le nombre en 'str'... Pourquoi ?")bksl-nlbksl-nlbksl-nlassert multiplication(Entier(2), Entier(3)) == 6bksl-nlbksl-nl 5/5

def multiplication(a, b):bksl-nl ...bksl-nlbksl-nlbksl-nl# Testsbksl-nlassert multiplication(3, 5) == 15bksl-nlassert multiplication(-4, -8) == 32bksl-nlassert multiplication(-2, 6) == -12bksl-nlassert multiplication(3, -4) == -12bksl-nlassert multiplication(-2, 0) == 0bksl-nlbksl-nl

A

Z