张静aa 发表于 2021-5-13 14:57:30

新人小白求助

题目是:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
(小甲鱼温馨提示:步子太大真的容易扯着蛋~~~)
x=7
i=1
while i<=100:
    if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
      print ('阶梯数为 ',x)
    else:
      x=7*(i+1)
      i=i+1
这是我写的代码,最后结果阶梯数为119 ,这句话一直在循环不停止。
所以不知道哪里出问题了,请求各位大神指出问题所在

逃兵 发表于 2021-5-13 15:00:54

满足if以后由于x和i都不会再次发生变化,死循环了
加个break就行
x=7
i=1
while i<=100:
    if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
      print ('阶梯数为 ',x)
      break
    else:
      x=7*(i+1)
      i=i+1

肖-肖 发表于 2021-5-13 15:02:13

x=7
i=1
while i<=100:
    if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
      print ('阶梯数为 ',x) #这里当条件满足的时候没有break退出循环所以就会一直while一直if true 导致一
直输出最后结果阶梯数为119
      break #加上即可
    else:
      x=7*(i+1)
      i=i+1

张静aa 发表于 2021-5-13 15:06:06

肖-肖 发表于 2021-5-13 15:02
x=7
i=1
while i

{:10_297:}蟹蟹丫

张静aa 发表于 2021-5-13 15:06:56

逃兵 发表于 2021-5-13 15:00
满足if以后由于x和i都不会再次发生变化,死循环了
加个break就行

{:10_250:}明白了,蟹蟹丫

肖-肖 发表于 2021-5-13 15:20:32

张静aa 发表于 2021-5-13 15:06
蟹蟹丫

不客气
页: [1]
查看完整版本: 新人小白求助