Ethiopian multiplication: Difference between revisions
Content added Content deleted
m (→{{header|Python}}: Spacing) |
|||
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 |
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) |
||