Ethiopian multiplication: Difference between revisions
Content added Content deleted
(Improve GW-BASIC program) |
|||
Line 1,982: | Line 1,982: | ||
Y (double Y) ) ) |
Y (double Y) ) ) |
||
R ) )</lang> |
R ) )</lang> |
||
=={{header|Pike}}== |
|||
<lang Pike>int ethopian_multiply(int l, int r) |
|||
{ |
|||
int halve(int n) { return n/2; }; |
|||
int double(int n) { return n*2; }; |
|||
int(0..1) evenp(int n) { return !(n%2); }; |
|||
int product = 0; |
|||
do |
|||
{ |
|||
write("%5d %5d\n", l, r); |
|||
if (!evenp(l)) |
|||
product += r; |
|||
l = halve(l); |
|||
r = double(r); |
|||
} |
|||
while(l); |
|||
return product; |
|||
}</lang> |
|||
=={{header|PL/I}}== |
=={{header|PL/I}}== |