鱼C论坛

 找回密码
 立即注册
查看: 989|回复: 4

[已解决]零基础学python 第7课课后习题 有不懂之处求解答

[复制链接]
发表于 2019-1-22 12:26:13 | 显示全部楼层 |阅读模式
20鱼币
题目是:
爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
请编程求解该阶梯至少有多少阶?

参考代码是:
x = 7
i = 1
flag = 0

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1
    else:
        x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')

运行结果是:
阶梯数是: 119 101

我不明白的地方是,为什么只输出了119,下一个满足要求的楼梯数329,以及在x<700的范围内其余的楼梯数为什么没有打印出来

最佳答案
2019-1-22 12:26:14
因为当x满足条件后再也进不去 while循环中的else分支,所以x一直不变了

最佳答案

查看完整内容

因为当x满足条件后再也进不去 while循环中的else分支,所以x一直不变了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-22 12:26:14 | 显示全部楼层    本楼为最佳答案   
因为当x满足条件后再也进不去 while循环中的else分支,所以x一直不变了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-22 12:28:49 | 显示全部楼层
运行结果是:
阶梯数是: 119

因为改动了下代码,帖子里的是把 i 也输出来的结果,更正一下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-22 12:31:51 | 显示全部楼层
BngThea 发表于 2019-1-22 12:28
因为当x满足条件后再也进不去 while循环中的else分支,所以x一直不变了

可是while语句是判定的 i 啊,
只要 i <100 都会重新进入循环不是吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-22 12:37:23 | 显示全部楼层
BngThea 发表于 2019-1-22 12:26
因为当x满足条件后再也进不去 while循环中的else分支,所以x一直不变了

看懂了,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-1 02:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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