17讲 欧几里得求最大公约数,没按照欧几里得写,但是还是没写对
def hell(x,y):GYS = 1
a = 1
while a<x :
if x%a == 0 and y%a == 0:
GYS = a
a+=1
return GYS
print(hell(12,18))
欧几里得的方法会了,自己的写不对 本帖最后由 jackz007 于 2022-10-9 22:00 编辑
很有创意的思路,试试这个
def hell(x , y):
GYS , a = 1 , 2 # a 的初值有修改
while a <= x and a <= y :
if x % a == 0 and y % a == 0: # 循环条件有修改
GYS = a
a += 1 # 这一句写法有错,已经修正
return GYS
print(hell(12,18)) 本帖最后由 傻眼貓咪 于 2022-10-9 21:57 编辑
# a > b
Euclid = lambda a, b: a if not b else Euclid(b, a%b) 傻眼貓咪 发表于 2022-10-9 21:56
谢谢大佬,感谢你的好意,不过还没学到这里了{:5_107:}没太理解{:5_96:} jackz007 发表于 2022-10-9 21:53
很有创意的思路,试试这个
谢谢耐心解答,明白了,我这全是格式错了{:5_109:}
页:
[1]