关于课后作业求x,y最大公约数
初学者自己写了一个代码(课后作业求x,y最大公约数),出现以下问题:1.x=y情况下,不显示答案
2.gcd(9,5)类似为何会print两个答案
可能是我while理解不深入,求助老哥们解答。
def gcd(x,y):
while x<=y:
c=y%x
y=x
x=c
if c==0:
break
print("x和y的最大公约数是:",x)
return
while x>y:
c=x%y
x=y
y=c
if c==0:
break
print("x和y的最大公约数是:",y)
return
def gcd(x,y):
while x<=y:
c=y%x
y=x
x=c
if c==0:
break
print("x和y的最大公约数是:",x)print 提到循环外,return 后面的一定不会执行删掉就好
满意请选最佳~{:10_323:} 没必要判断xy谁大谁小
反正xy会进行求余
你的程序打印多个结果的问题是print缩进不对,应该与while在一个层次
另外你的程序,若x>y则不会有任何结果。
def gcd(x, y):
while y != 0:
c = x % y
x = y
y = c
print("x和y的最大公约数是:",x) 永恒的蓝色梦想 发表于 2020-4-16 23:22
print 提到循环外,return 后面的一定不会执行删掉就好
满意请选最佳~
你的是不对滴~~
若x>y呢?
程序不进入循环,直接输出x?
gcd(18,9)输出的最大公约数是18? sunrise085 发表于 2020-4-16 23:59
你的是不对滴~~
若x>y呢?
程序不进入循环,直接输出x?
按原来的程序改的,根本没看……{:10_262:}这个问题也没修复 def gcd(x,y):
while x<=y:
c=y%x
if c==0:
print("x和y的最大公约数是:",x)
break
y=x
x=c
while x>y:
c=x%y
if c==0:
print("x和y的最大公约数是:",y)
break
x=y
y=c
return
页:
[1]