Python 如何避免在递归函数中手动设置变量的初始值?
我为Euler项目5找到了这个解决方案(可以被1到20之间的所有数字平均整除的最小正数是多少?),其中的整数值范围可变,可以平均除:Python 如何避免在递归函数中手动设置变量的初始值?,python,Python,我为Euler项目5找到了这个解决方案(可以被1到20之间的所有数字平均整除的最小正数是多少?),其中的整数值范围可变,可以平均除: def Euler5(start, end, counter): x = counter while start <= end: if x%counter == x%start: return Euler5(start+1, end, x) else: x +=
def Euler5(start, end, counter):
x = counter
while start <= end:
if x%counter == x%start:
return Euler5(start+1, end, x)
else:
x += counter
return x
def Euler5(开始、结束、计数器):
x=计数器
而start如果我理解正确,则您希望在第一次调用中手动指定计数器,而不需要为初始调用指定计数器==start
为此,您可以将计数器
设置为默认值None
,并在函数开始时进行检查,如果出现这种情况,则将计数器
设置为适当的值:
def Euler5(start, end, counter=None):
if counter is None:
counter = start
x = counter
while start <= end:
if x % counter == x % start:
return Euler5(start+1, end, x)
else:
x += counter
return x
def Euler5(开始、结束、计数器=无):
如果计数器为无:
计数器=开始
x=计数器
如果真是这样的话,我希望能投赞成票谢谢,我很感激。