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}}==