image.png
代码思路:参考浅谈一下大数相乘有关思路(图解)与用java代码具体解决方案https://blog.csdn.net/sunkun2013/article/details/11822927
class Solution(object):
def multiply(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
if num1 == '0' or num2 =='0':
return '0'
if len(num2)<len(num1):
tmp = num2
num2 = num1
num1 = tmp
res1 = [[0 for i in range(len(num2))] for j in range(len(num1))]
for i in range(len(num1)):
for j in range(len(num2)):
res1[i][j] = (int(num1[i])*int(num2[j]))
res2 = [0 for i in range(len(num2)+len(num1)-1)]
for i in range(len(num1)):
for j in range(len(num2)):
res2[i+j] += res1[i][j]
res = ''
jinwei = 0
for i in range(len(res2)-1,-1,-1):
dangqianwei = (res2[i]+jinwei)%10
jinwei = (res2[i]+jinwei)/10
res = str(dangqianwei) + res
res = str(jinwei) +res
if res[0] == '0':
return res[1:]
return res
s = Solution()
print s.multiply('9','99')