python 欧几里算法求最大公约数
def gcd(x, y):if y:
return gcd(y, x%y)
else:
return x
print(gcd(4, 6))
问题1:最大公约数的求法为啥是两个数互余,能反过来求余嘛?例:x%y,能y%x嘛?
问题2:这个程序需要咋理解,为啥当y为0的时候,返回x,是因为递归的时候当y为0的时候,最大公约数就为x了嘛?
问题3:为啥在第一个return 那里,要将y的值传给x
求大佬解答!! 这不是数学里学的吗?
y取代x,y对x的余数取代y 昨非 发表于 2021-1-12 19:48
这不是数学里学的吗?
y取代x,y对x的余数取代y
对呀,我感觉我要重修了,全都忘了...
你这么一说,我好像有点理解了 小无趣 发表于 2021-1-12 19:51
对呀,我感觉我要重修了,全都忘了...
你这么一说,我好像有点理解了
看百度辗转相除的定义https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%AE%97%E6%B3%95/1647675?fr=aladdin understand? 昨非 发表于 2021-1-12 20:11
understand?
差不多了,谢谢大佬!!{:10_266:} 小无趣 发表于 2021-1-12 20:17
差不多了,谢谢大佬!!
不至于不至于,
主要这玩意就一概念问题
理解了定义都不难的{:10_245:}
页:
[1]