鱼C论坛

 找回密码
 立即注册
查看: 2036|回复: 13

[已解决]第011讲:短路逻辑和运算符优先级 | 课后测试题 动动手疑问

[复制链接]
发表于 2021-8-18 15:00:08 | 显示全部楼层 |阅读模式

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

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

x


while i < 100:
    if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
        FIND = True
        break
    else:
        steps = 7 * (i + 1)
    i = i + 1

问题1:  if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):   这里为什么没有"steps%7==0"

问题2:  else:
        steps = 7 * (i + 1)    为什么还要有这个要求?

问题3:  这个 if 和 else 的逻辑我不太理解.

所有的回答都非常感谢!

最佳答案
2021-8-18 15:13:14
本帖最后由 大马强 于 2021-8-18 15:27 编辑

题目:有一个长阶梯,若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6 阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。
从题目我们可以得知阶梯数是7的倍数
1.加和不加没区别,不写为了简便
2.你也可以一个一个的加上去,但我们以及知道是7的倍数了,所以每次乘七就好了
3if else 组合中,当条件满足执行if,不满足执行else语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-18 15:03:39 | 显示全部楼层
提问时  不应该先把题目发出来吗  
你是不是以为  你只要一说XX讲 xx 题   地球人都知道啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 15:13:14 | 显示全部楼层    本楼为最佳答案   
本帖最后由 大马强 于 2021-8-18 15:27 编辑

题目:有一个长阶梯,若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6 阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。
从题目我们可以得知阶梯数是7的倍数
1.加和不加没区别,不写为了简便
2.你也可以一个一个的加上去,但我们以及知道是7的倍数了,所以每次乘七就好了
3if else 组合中,当条件满足执行if,不满足执行else语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 15:17:03 | 显示全部楼层
不好意思,问题我补充一下:

原题:  爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6 阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。

全部代码如下:
steps = 7
i = 1
FIND = False

while i < 100:
    if steps%2==1 and steps%3==2 and steps%5==4 and steps%6==5:
        FIND = True
        break
    else:
       steps=7*(i+1)
    i = i + 1

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

问题1:  if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):   这里为什么没有"steps%7==0"

问题2:  else:
        steps = 7 * (i + 1)    为什么还要有这个要求?

问题3:  这个 if 和 else 的逻辑我不太理解.

所有的回答都非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 15:17:32 | 显示全部楼层
wp231957 发表于 2021-8-18 15:03
提问时  不应该先把题目发出来吗  
你是不是以为  你只要一说XX讲 xx 题   地球人都知道啊

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

使用道具 举报

发表于 2021-8-18 15:28:02 | 显示全部楼层


我也改了回答,你看看吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 15:46:41 | 显示全部楼层
大马强 发表于 2021-8-18 15:13
题目:有一个长阶梯,若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4  ...

问题3:这个部分,我不太理解为什么要有else,如下的代码也可以达到一样的效果,加上else,反而成了对立(满足if ,else这里就不能执行steps=7*(i+1)了,不是错了么?).
hile i < 100:
    if steps%2==1 and steps%3==2 and steps%5==4 and steps%6==5:
        FIND = True
        break
    steps=7*(i+1)
    i = i + 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 15:53:03 | 显示全部楼层
浅谈爱因斯坦阶梯问题
https://fishc.com.cn/thread-199725-1-1.html
(出处: 鱼C论坛)
我写的一个帖子 , 可以看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 16:18:29 | 显示全部楼层
傅彧 发表于 2021-8-18 15:46
问题3:这个部分,我不太理解为什么要有else,如下的代码也可以达到一样的效果,加上else,反而成了对立(满足i ...

在这个题确实可以这样不要else,if else 这个组合只能够执行一个语句,这东西还是具体题目具体分析吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 17:19:19 | 显示全部楼层
大马强 发表于 2021-8-18 16:18
在这个题确实可以这样不要else,if else 这个组合只能够执行一个语句,这东西还是具体题目具体分析吧

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

使用道具 举报

发表于 2021-8-18 17:20:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 17:22:42 | 显示全部楼层
柿子饼同学 发表于 2021-8-18 15:53
浅谈爱因斯坦阶梯问题
https://fishc.com.cn/thread-199725-1-1.html
(出处: 鱼C论坛)

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

使用道具 举报

发表于 2021-8-18 18:40:54 | 显示全部楼层

没事没事 , 还有不懂的嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 19:33:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 16:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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