Long multiplication: Difference between revisions

Added 11l
m (→‎base 10^9: minor tidy)
(Added 11l)
Line 19:
340,282,366,920,938,463,463,374,607,431,768,211,456
<br><br>
 
=={{header|11l}}==
{{trans|Python}}
 
<lang 11l>F add_with_carry(&result, =addend, =addendpos)
L
L result.len < addendpos + 1
result.append(‘0’)
V addend_result = String(Int(addend) + Int(result[addendpos]))
V addend_digits = Array(addend_result)
result[addendpos] = addend_digits.pop()
 
I addend_digits.empty
L.break
 
addend = addend_digits.pop()
addendpos++
 
F longhand_multiplication(multiplicand, multiplier)
[Char] result
L(multiplicand_digit) reversed(multiplicand)
V multiplicand_offset = L.index
L(multiplier_digit) reversed(multiplier)
V multiplier_offset = L.index + multiplicand_offset
V multiplication_result = String(Int(multiplicand_digit) * Int(multiplier_digit))
 
L(result_digit_addend) reversed(multiplication_result)
V addend_offset = L.index + multiplier_offset
add_with_carry(&result, result_digit_addend, addend_offset)
 
result.reverse()
R result.join(‘’)
 
V sixtyfour = ‘18446744073709551616’
print(longhand_multiplication(sixtyfour, sixtyfour))</lang>
 
{{out}}
<pre>
340282366920938463463374607431768211456
</pre>
 
=={{header|360 Assembly}}==
1,480

edits