思路:
1. 把数据放到列表中,即list1和list2。
2. 每个list1列表中的第i个元素,与list2列表中的第j个元素相乘,把对应乘积的结果放到下标为(i+j)的列表中。
3. 如果该位的结果大于10,则向后进1。
def list2str(li):
while li[0] == 0:
del li[0]
res = ''
for i in li:
res += str(i)
return res
def multi(stra, strb):
aa = list(stra)
bb = list(strb)
lena = len(stra)
lenb = len(strb)
result = [0 for i in range(lena + lenb)]
for i in range(lena):
for j in range(lenb):
result[lena - i - 1 + lenb - j - 1] += int(aa[i]) * int(bb[j])
for i in range(len(result) - 1):
while result[i] >= 10:
result[i + 1] += result[i] // 10
result[i] = result[i] % 10
return list2str(result[::-1])
if __name__ == '__main__':
print('请输入两个参数')
str1 = input()
str2 = input()
if str1.isdigit() and str2.isdigit():
res = multi(str1, str2)
print('multi', res)
#print('ok', int(res) - int(str1) * int(str2))