我找到了欧拉项目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 += counter
return x
但我必须手动将计数器设置为最小的整数值(初始counter
= start
值)。有没有办法自动执行此操作并维护算法?
答案 0 :(得分:3)
如果我理解正确,您希望counter == start
用于初始通话,而无需在第一次通话中手动指定counter
。
为此,您可以将counter
设置为默认值None
,并在函数开头检查此项,如果是这种情况,请将counter
设置为适当的值:
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