一、題目
題目描述
有兩個用字元串表示的非常大的大整數,算出他們的乘積,也是用字元串表示。不能用系統自帶的大整數類型。 輸入描述:
空格分隔的兩個字元串,代表輸入的兩個大整數
輸出描述:
輸入的乘積,用字元串表示
示例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