def lcm(x,y):
lcm=max(x,y)#assume x and y be 9 and 15 respectively then lcm is 15
while lcm%x !=0 or lcm%y !=0:# loop should be end when 15 is divided by 9 but loop is not ending
lcm+=1
return lcm
x=int(input('enter the number'))
y=int(input('enter the number'))
print(lcm(x,y))虽然循环应该在余数不是0时结束,但它不是结束,它只是继续,当余数是0时,它结束。就像x和y的值分别是9和15一样,lcm在x和y中的值更大,lcm是15。当lcm(15)除以9时,它的余数不是0。此时循环应该结束,因为余数不是0,而且我使用了(或),这意味着至少有一个语句需要不是0来终止循环。但是循环一直持续到45岁怎么了?
发布于 2022-04-27 12:23:30
如果有一段时间循环要结束,其条件必须为false。它运行,而条件为真。while循环的条件是lcm%x !=0 or lcm%y !=0,其中lcm%x !=0为false,lcm%y !=0为false。也就是说,它将运行到lcm可以被x和y整除为止。
https://stackoverflow.com/questions/72007614
复制相似问题