这是我确定“两个数的最大公分母”的程序
integer1 = int(input("Enter an integer:"))
integer2 = int(input("Enter an integer:"))
if integer1 > integer2:
x = integer1
while integer1%x and integer2%x !=0:
x = x - 1
elif integer2 > integer1:
x = integer2
while integer1%x and integer2%x !=0:
x = x - 1
print("the gcd of",integer1,"and",integer2,"is",x)
例如,当我输入值“25”和“50”时,我的程序会说GCD是50,这是不正确的。你知道吗
x
,然后应用不变的逻辑x
可以从最小值开始,而不是从最大值开始x
,它应该同时满足integer1 % x == 0
和integer2 % x == 0
,因此while
的停止条件应该是integer1 % x != 0 or integer2 % x != 0
(这里的!=0
与int-to-bool转换是冗余的,因此可以跳过它们)a and b == 0
类型的表达式的行为方式与您可能认为的不同,“正确”的方式是a == 0 and b == 0
。你知道吗相关问题 更多 >
编程相关推荐