鱼C论坛

 找回密码
 立即注册
查看: 3587|回复: 9

[已解决]求助:python第六讲“爱因斯坦的难题”解答

[复制链接]
发表于 2020-7-7 17:51:51 | 显示全部楼层 |阅读模式

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

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

x
t = 0
s = 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('在程序限定的范围内找不到答案!')
最佳答案
2020-7-7 17:57:15
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('在程序限定的范围内找不到答案!')
这样就可以了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 17:57:15 | 显示全部楼层    本楼为最佳答案   
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('在程序限定的范围内找不到答案!')
这样就可以了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2020-7-7 17:58:18 | 显示全部楼层
楼主 你的代码里面的while循环缺少退出循环的条件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 17:59:51 | 显示全部楼层

请问为什么不能用while t >= 0呢?谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 18:02:54 | 显示全部楼层
17876893804 发表于 2020-7-7 17:59
请问为什么不能用while t >= 0呢?谢谢!

你看哈,代码里面的t初始值为0,然后进入while循环,如果if语句不成立,t会加1,那么在循环里t是永远大于0的,while循环的判定条件t >= 0是永远成立的,所以会一直循环下去,这时候就错了,需要找新的判定循环的方式,s正合适
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 18:09:50 | 显示全部楼层
因为你循环内 t 都是+1的,所以这个循环条件会始终成立导致死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 18:10:09 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-7-7 18:02
你看哈,代码里面的t初始值为0,然后进入while循环,如果if语句不成立,t会加1,那么在循环里t是永远大于 ...

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

使用道具 举报

发表于 2020-7-7 18:11:13 | 显示全部楼层

最佳是对我最大的鼓励,麻烦设置最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 18:18:33 | 显示全部楼层
没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-5 22:50:46 | 显示全部楼层
本帖最后由 yg飞许 于 2023-1-5 22:53 编辑


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('在程序限定的范围内找不到答案!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 01:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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