求助:为什么不停的打印119啊?
a = 1x = 7
while a<=100:
if(x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and (x%7==0):
print('阶梯数是:',x,end='')
else:
x = 7*(a+1)
a +=1
print('不在限定范围内')
为什么不停的打印,阶梯数是119? 本帖最后由 jackz007 于 2019-7-31 17:45 编辑
问题在这里:
else:
x = 7*(a+1)
a +=1
这 2 条语句应该是无条件执行的,可是,却被放到了 else 后面,导致当 x = 119 的时候,无法更新下一个 x 值,从而陷入死循环。
改成这样就好了:
a , x = 1 , 7
while a <= 100:
if(x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5) and (x % 7 == 0):
print('阶梯数是:' , x , end='')
x = 7 * (a + 1)
a += 1 因为当找到满足条件的x之后,a就不再改变了,a一直符合小于等于100的条件,while循环就会一直执行 jackz007 发表于 2019-7-31 17:41
问题在这里:
这 2 条语句应该是无条件执行的,可是,却被放到了 else 后面,导致当 x = 11 ...
谢谢!
页:
[1]