傅彧 发表于 2021-8-18 15:00:08

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



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 的逻辑我不太理解.

所有的回答都非常感谢!

wp231957 发表于 2021-8-18 15:03:39

提问时不应该先把题目发出来吗
你是不是以为你只要一说XX讲 xx 题   地球人都知道啊

大马强 发表于 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语句

傅彧 发表于 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 的逻辑我不太理解.

所有的回答都非常感谢!

傅彧 发表于 2021-8-18 15:17:32

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

已补充,谢谢

大马强 发表于 2021-8-18 15:28:02

傅彧 发表于 2021-8-18 15:17
已补充,谢谢

我也改了回答,你看看吧

傅彧 发表于 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

柿子饼同学 发表于 2021-8-18 15:53:03

浅谈爱因斯坦阶梯问题
https://fishc.com.cn/thread-199725-1-1.html
(出处: 鱼C论坛)
我写的一个帖子 , 可以看看

大马强 发表于 2021-8-18 16:18:29

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

在这个题确实可以这样不要else,if else 这个组合只能够执行一个语句,这东西还是具体题目具体分析吧

傅彧 发表于 2021-8-18 17:19:19

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

谢谢

大马强 发表于 2021-8-18 17:20:35

傅彧 发表于 2021-8-18 17:19
谢谢

没事{:10_297:}

傅彧 发表于 2021-8-18 17:22:42

柿子饼同学 发表于 2021-8-18 15:53
浅谈爱因斯坦阶梯问题
https://fishc.com.cn/thread-199725-1-1.html
(出处: 鱼C论坛)


谢谢

柿子饼同学 发表于 2021-8-18 18:40:54

傅彧 发表于 2021-8-18 17:22
谢谢

没事没事 , 还有不懂的嘛

hornwong 发表于 2021-8-18 19:33:11

{:5_95:}
页: [1]
查看完整版本: 第011讲:短路逻辑和运算符优先级 | 课后测试题 动动手疑问