枫枫duck 发表于 2020-4-3 20:04:50

第006讲:Python作业之爱因斯坦的数学问题

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
(小甲鱼温馨提示:步子太大真的容易扯着蛋~~~)

我的问题是怎么是while循环结束呢,因为他会一直输入'阶梯数是119'


x = 7
i = 1
while i:
    if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
      print('阶梯数是',x)
    else:
      x = x + 7
      i = i + 1

jackz007 发表于 2020-4-3 20:08:19

本帖最后由 jackz007 于 2020-4-3 20:12 编辑

循环没有用对
for x in range(0 , 700 , 7):
    if x % 2 == 1 and x % 3 == 2 and x % 5 == 4 and x % 6 == 5 :
      print('阶梯数是' , x)
如果一定要用 while
x = 7
while x < 701:
    if x % 2 == 1 and x % 3 == 2 and x % 5 == 4 and x % 6 == 5 :
      print('阶梯数是' , x)
    x += 7
如果只找一个:
x = 7
while x < 701:
    if x % 2 == 1 and x % 3 == 2 and x % 5 == 4 and x % 6 == 5 :
      print('阶梯数是' , x)
      break
    x += 7   

dlnb526 发表于 2020-4-3 20:11:26

x = 7
i = 1
while i:
    if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
      print('阶梯数是',x)
      break
    else:
      x = x + 7
      i = i + 1

源代码if 最后加个ibreak达到条件跳出循环~

sunrise085 发表于 2020-4-3 20:11:59

找到合适的阶梯数后,应该用break结束循环

x = 7
i = 1
while i:
    if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
      print('阶梯数是',x)
      break
    else:
      x = x + 7
      i = i + 1

枫枫duck 发表于 2020-4-3 20:24:40

jackz007 发表于 2020-4-3 20:08
循环没有用对

如果一定要用 while


请问break怎么使用呢,我还没有学到

枫枫duck 发表于 2020-4-3 20:25:17

sunrise085 发表于 2020-4-3 20:11
找到合适的阶梯数后,应该用break结束循环

谢谢帮助

jackz007 发表于 2020-4-3 21:14:48

枫枫duck 发表于 2020-4-3 20:24
请问break怎么使用呢,我还没有学到

      break 的作用是立即结束循环,在本例中,当找到并打印出第一个符合条件的 x 后,就可以考虑结束循环,当然,如果希望能在 7 ~ 700 的范围内找出所有符合条件的 x,那就可以选择继续,直到循环自然结束。
页: [1]
查看完整版本: 第006讲:Python作业之爱因斯坦的数学问题