版权声明:本文为阿木寺的原创文章,未经本人允许不得转载。 https://blog.csdn.net/amusi1994/article/details/82717104
题目描述
十进制20位数据乘法
输入描述:
两个不超过20位都不为0的十进制字符串
输出描述:
字符串相乘结果
示例1
输入
20000000000000000000
30000000000000000000
输出
600000000000000000000000000000000000000
Python代码
# -*- coding:utf-8 -*-
def recursive_multiply(x, y, n):
if n==1:
return x*y
else:
a = x/pow(10, n/2)
b = x-a*pow(10, n/2)
c = y/pow(10, n/2)
d = y-c*pow(10, n/2)
ac = recursive_multiply(a, c, n/2)
bd = recursive_multiply(b, d, n/2)
p = recursive_multiply(a+b, c+d, n/2) - ac -bd
return ac*pow(10, n) + p*pow(10, n/2) + bd
if __name__ == '__main__':
num1 = int(raw_input())
num2 = int(raw_input())
r = recursive_multiply(num1,num2,4)
print r