Ethiopian multiplication: Difference between revisions
→{{header|Picat}}: Moved into subsections, added {{out}}
(→{{header|Picat}}: Moved into subsections, added {{out}}) |
|||
Line 4,119:
=={{header|Picat}}==
===Iterative===
<lang Picat>go =>▼
<lang Picat>ethiopian(Multiplier, Multiplicand) = ethiopian(Multiplier, Multiplicand,false).▼
println(ethiopian(17,34)),▼
ethiopian2(17,34,Z2),▼
println(Z2),▼
println(ethiopian(17,34,true)),▼
_ = random2(),▼
_ = ethiopian(random() mod 10000,random() mod 10000,true),▼
nl.▼
▲ethiopian(Multiplier, Multiplicand) = ethiopian(Multiplier, Multiplicand,false).
ethiopian(Multiplier, Multiplicand,Tutor) = Result =>
Line 4,157 ⟶ 4,143:
nl
end,
Result = Result1.</lang>
===Recursion===
{{trans|Prolog}}
<lang Picat>ethiopian2(First,Second,Product) =>
ethiopian2(First,Second,0,Product).
Line 4,174 ⟶ 4,160:
is_even(X) => X mod 2 = 0.</lang>
===Test===
▲<lang Picat>go =>
▲ println(ethiopian(17,34)),
▲ ethiopian2(17,34,Z2),
▲ println(Z2),
▲ println(ethiopian(17,34,true)),
▲ _ = random2(),
▲ _ = ethiopian(random() mod 10000,random() mod 10000,true),
▲ nl.</lang>
{{out}}
<pre>578
578
Line 4,205 ⟶ 4,206:
=======
54271924</pre>
=={{header|PicoLisp}}==
|