一、题目
题目描述
有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。 输入描述:
空格分隔的两个字符串,代表输入的两个大整数
输出描述:
输入的乘积,用字符串表示
示例1 输入
72106547548473106236 982161082972751393
输出
70820244829634538040848656466105986748
二、代码实现
from math import floor
s = input().split(' ')
alen = len(s[0])
blen = len(s[1])
a = []
b = []
for i in range(alen):
a.append(int(s[0][alen-i-1]))
for i in range(blen):
b.append(int(s[1][blen-i-1]))
answer = [0]*10000
for i in range(alen):
label = i
for j in range(blen):
t = a[i]*b[j]
answer[label] = answer[label] + t
answer[label+1] += int(floor(answer[label]/10))
answer[label] %= 10
for k in range(10):
if int(floor(answer[label+k+1]/10)) != 0:
answer[label+k+2] += int(floor(answer[label+k+1]/10))
answer[label+k+1] %= 10
else:
break
label += 1
i = 9999
while answer[i] == 0:
i -= 1
while i >= 0:
print(answer[i], end='')
i -= 1