Producte Ràpid X45712


Statement
 

pdf   zip

thehtml

Escriure una funció producte_rapid(n,m) que donat dos nombre enters n i m retorni el producte n × m.

Només podeu fer servir sumes, restes, multiplicacions per 2 i divisions (enteres) per 2.

Entrada

La funció té dos nombres enters com a paràmetres.

Pista

Cal implementar l’algorisme de producte ràpid que es basa en que n × m és:

n × m = n × (m−1) + n

però si m és parell tenim també que:

n × m = (2 × n) × (m/2)

Observacions

Aquest algorisme de la Pista només és vàlid si m ≥ 0. Haureu de considerar que a la funció demanada el paràmetre m pot ser negatiu.

Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.

Sample session
>>> producte_rapid(8,7)
56
>>> producte_rapid(8,0)
0
>>> producte_rapid(0,0)
0
>>> producte_rapid(0,5674389257)
0
>>> producte_rapid(3265942354732,5674389257)
18532228211672543914124
>>> producte_rapid(487329,74392856432)
36253796332150128
>>> producte_rapid(487329,10000)
4873290000
>>> producte_rapid(487329,1)
487329
>>> producte_rapid(1,74392856432)
74392856432
>>> producte_rapid(-2345, -6789)
15920205
>>> producte_rapid(-2345, 6789)
-15920205
>>> producte_rapid(2345, -6789)
-15920205
>>> producte_rapid(2345, 6789)
15920205
>>> 
Information
Author
Jordi Delgado
Language
Catalan
Official solutions
Python
User solutions
Python