鱼C论坛

 找回密码
 立即注册
查看: 2205|回复: 6

[已解决]第006讲:Python作业之爱因斯坦的数学问题

[复制链接]
发表于 2020-4-3 20:04:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上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
最佳答案
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

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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达到条件跳出循环~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-3 20:24:40 | 显示全部楼层
jackz007 发表于 2020-4-3 20:08
循环没有用对

如果一定要用 while

请问break怎么使用呢,我还没有学到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-3 20:25:17 | 显示全部楼层
sunrise085 发表于 2020-4-3 20:11
找到合适的阶梯数后,应该用break结束循环

谢谢帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 21:14:48 | 显示全部楼层
枫枫duck 发表于 2020-4-3 20:24
请问break怎么使用呢,我还没有学到

      break 的作用是立即结束循环,在本例中,当找到并打印出第一个符合条件的 x 后,就可以考虑结束循环,当然,如果希望能在 7 ~ 700 的范围内找出所有符合条件的 x,那就可以选择继续,直到循环自然结束。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 23:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表