【发布时间】:2017-11-08 13:16:56
【问题描述】:
def mike(a,b):
d=min(a,b)
e=d
if max(a,b)%d==0 and e%d==0:
return d
else:
return mike(max(a,b),d-1)
print(mike(12,18))
我找不到将“e”的值作为两个整数中最小值的固定值的方法,如果是 12。随着代码的继续,“e”的值也会随之变化。但我希望它具有两者中最小的固定值。对不起菜鸟问题。请帮忙。
【问题讨论】:
-
在 Python 3 中,您可以使用
math.gcd(a,b)来获取 gcd。还是您想编写自己的版本? -
e%d==0始终是true。 -
使用
d-1真的没有意义。考虑gcd(12, 7)。这将与gcd(12, 6)递归,即 6,而答案应该是 1。 -
(1) 我只是解释了怎么做,(2) 你不能那样计算 gcd,除非你把它作为第三个没有用的参数传递。跨度>
标签: python python-3.x