Recursion 如何递归计算%b?
我需要编写一个递归函数,返回两个数的余数。以下是我写的:Recursion 如何递归计算%b?,recursion,python-3.x,Recursion,Python 3.x,我需要编写一个递归函数,返回两个数的余数。以下是我写的: def remainder(a,b): if a==b: return 0 else: k=a-b return a-b + remainder(b,a-k) 如果我们测试余数(5,3)函数将返回2,这是正确的,但是如果我们测试余数(15,3), 我们会得到12,它是假的。我只是不知道如何调试它。它应该是这样的: def remainder(a,b): if a<b
def remainder(a,b):
if a==b:
return 0
else:
k=a-b
return a-b + remainder(b,a-k)
如果我们测试余数(5,3)函数将返回2,这是正确的,但是如果我们测试余数(15,3),
我们会得到12,它是假的。我只是不知道如何调试它。它应该是这样的:
def remainder(a,b):
if a<b:
return a
else:
return remainder(a-b,b)
def余数(a,b):
如果a应该是这样的:
def remainder(a,b):
if a<b:
return a
else:
return remainder(a-b,b)
def余数(a,b):
如果a您缺少一个案例:(当a
输出:
0
如果您很懒,不想写超过两行,请点击此处:
def remainder(a,b):
return a if a < b else remainder(a-b, b)
def余数(a,b):
如果a
您缺少一个案例:(当a
输出:
0
如果您很懒,不想写超过两行,请点击此处:
def remainder(a,b):
return a if a < b else remainder(a-b, b)
def余数(a,b):
如果a
您可以执行以下操作:
def remainder(a, b):
if a < b:
return a
return remainder(a - b, b)
如果a
,则表示我们完成了:我们知道计算结果,可以返回a
。否则,我们需要从a
中减去b
,然后再次递归调用余数。然后可以重复进行此操作,直到a
小于b
。一旦发生这种情况,递归将停止(即不再调用余数
),但我们可以返回结果。您可以执行以下操作:
def remainder(a, b):
if a < b:
return a
return remainder(a - b, b)
如果a
,则表示我们完成了:我们知道计算结果,可以返回a
。否则,我们需要从a
中减去b
,然后再次递归调用余数。然后可以重复进行此操作,直到a
小于b
。一旦发生这种情况,递归将停止(即,它不会再次调用余数
),但我们可以返回结果。您想做同样的事情%
做但没有%
?您想做同样的事情%
做但没有%
?