再写了个适合多个位数相乘的
#Karatsuba乘法,各个类型的多位数相乘升级版
def KaraMulti(x,y):
num1 = len(str(x))
num2 = len(str(y))
if num1%2 == 0:
i = num1/2
else:
i = (num1+1)/2
print("i=%d"%i)
if num2%2 == 0:
j = num2/2
else:
j = (num2+1)/2
a = x//10**i
b = x%10**i
c = y//10**j
d = y%10**j
result = a*c*10**(i+j)+a*d*10**i+b*c*10**j+b*d
print("%d*%d=%d"%(x,y,result))
print("请输入相乘两个数")
x = int(input("第一个数字"))
y = int(input("第二个数字"))
KaraMulti(x,y)
print(x*y)