大整数相乘python实现

一、题目

题目描述

有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。

输入描述:

空格分隔的两个字符串,代表输入的两个大整数

输出描述:

输入的乘积,用字符串表示

示例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

 

猜你喜欢

转载自blog.csdn.net/zpf123456789zpf/article/details/88343139
今日推荐