Ethiopian multiplication: Difference between revisions

Content added Content deleted
Line 2,031: Line 2,031:
(multiplier, multiplicand) )
(multiplier, multiplicand) )
result += multiplicand
result += multiplicand
multiplier = halve(multiplier)
multiplier = halve(multiplier)
multiplicand = double(multiplicand)
multiplicand = double(multiplicand)
if tutor: print()
if tutor: print()
Line 2,052: Line 2,052:
Without the tutorial code, and taking advantage of Python's lambda:
Without the tutorial code, and taking advantage of Python's lambda:


<lang python>halve = lambda x: x // 2
<lang python>halve = lambda x: x // 2
double = lambda x: x*2
double = lambda x: x*2
even = lambda x : not x % 2
even = lambda x: not x % 2
def ethiopian(multiplier, multiplicand):
def ethiopian(multiplier, multiplicand):
Line 2,062: Line 2,062:
if not even(multiplier):
if not even(multiplier):
result += multiplicand
result += multiplicand
multiplier = halve(multiplier)
multiplier = halve(multiplier)
multiplicand = double(multiplicand)
multiplicand = double(multiplicand)