Long multiplication: Difference between revisions

Content added Content deleted
Line 3,409: Line 3,409:


=={{header|EasyLang}}==
=={{header|EasyLang}}==
{{Trans|Java}}
<syntaxhighlight lang="easylang">
<syntaxhighlight lang="easylang">
proc mult a$ b$ . r$ .
proc mult a$ b$ . r$ .
r$ = ""
a[] = number strchars a$
a[] = number strchars a$
b[] = number strchars b$
b[] = number strchars b$
len r[] len a[] + len b[]
len r[] len a[] + len b[]
for ib range0 len b[]
for ib = len b[] downto 1
b = b[len b[] - ib]
h = 0
tmp = 0
for ia = len a[] downto 1
for ia range0 len a[]
h += r[ia + ib] + b[ib] * a[ia]
tmp += r[ia + ib + 1]
r[ia + ib] = h mod 10
tmp += b * a[len a[] - ia]
h = h div 10
r[ia + ib + 1] = tmp mod 10
tmp = tmp div 10
.
ir = ib + len a[] + 1
while tmp <> 0
tmp += r[ir]
r[ir] = tmp mod 10
tmp = tmp div 10
ir += 1
.
.
r[ib] += h
.
.
for i = len r[] downto 1
r$ = ""
if r$ <> "" or r[i] <> 0 or i = 1
for i = 1 to len r[]
if r$ <> "" or r[i] <> 0 or i = len r[]
r$ &= r[i]
r$ &= r[i]
.
.