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.
>>> 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 >>>