卡拉丘巴算法:https ://en.wikipedia.org/wiki/Karatsuba_algorithm
threshold = 4
def prod2(a, b):
n = max(len(str(a)), len(str(b)))
if a == 0 or b == 0:
return
elif n <= threshold:
return a*b
else:
m = n/2
x = a/pow(10, m)
y = a % pow(10, m)
w = b/pow(10, m)
z = b % pow(10, m)
r = prod2(x+y, w+x)
p = prod2(x, w)
q = prod2(y, z)
return p*pow(10, 2*m) + (r-p-q)*pow(10, m)+q
a = 12314124
b = 123123
print(prod2(a, b))
RecursionError
: 获取对象的 str 时超出了最大递归深度
我已经在Python中实现了Karachuba算法并根据输入值适当地返回它,但我不知道为什么会出现递归错误。