一、题目
题目描述
有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。
输入描述:
空格分隔的两个字符串,代表输入的两个大整数输出描述:
输入的乘积,用字符串表示示例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