求助:python第六讲“爱因斯坦的难题”解答
t = 0s = 0
while t >= 0:
if (t % 2 == 1) and (t % 3 == 2) and (t % 5 == 4) and (t % 6 == 5) and (t % 7 == 0):
s = 1
else:
t = t + 1
if s == 1:
print('阶梯数是:', t)
else:
print('在程序限定的范围内找不到答案!')
t = 0
s = 0
while s == 0:
if (t % 2 == 1) and (t % 3 == 2) and (t % 5 == 4) and (t % 6 == 5) and (t % 7 == 0):
s = 1
else:
t = t + 1
if s == 1:
print('阶梯数是:', t)
else:
print('在程序限定的范围内找不到答案!')
这样就可以了吧 楼主 你的代码里面的while循环缺少退出循环的条件 小甲鱼的铁粉 发表于 2020-7-7 17:57
这样就可以了吧
请问为什么不能用while t >= 0呢?谢谢! 17876893804 发表于 2020-7-7 17:59
请问为什么不能用while t >= 0呢?谢谢!
你看哈,代码里面的t初始值为0,然后进入while循环,如果if语句不成立,t会加1,那么在循环里t是永远大于0的,while循环的判定条件t >= 0是永远成立的,所以会一直循环下去,这时候就错了,需要找新的判定循环的方式,s正合适 因为你循环内 t 都是+1的,所以这个循环条件会始终成立导致死循环 小甲鱼的铁粉 发表于 2020-7-7 18:02
你看哈,代码里面的t初始值为0,然后进入while循环,如果if语句不成立,t会加1,那么在循环里t是永远大于 ...
懂了!谢谢! 17876893804 发表于 2020-7-7 18:10
懂了!谢谢!
最佳是对我最大的鼓励,麻烦设置最佳{:10_297:} 没看懂 本帖最后由 yg飞许 于 2023-1-5 22:53 编辑
rubiness 发表于 2020-7-7 18:18
没看懂
t = 0
s = 0
while s == 0:
if (t % 2 == 1) and (t % 3 == 2) and (t % 5 == 4) and (t % 6 == 5) and (t % 7 == 0):
s = 1 #s = 1 是跳出循环
else:
t = t + 1 #这里是关键,当t加到119时,(满足了if后条件),( 同时也跳出循环)
if s == 1: #故开始执行
print('阶梯数是:', t)#打出119
else:
print('在程序限定的范围内找不到答案!')
页:
[1]