g476292825 发表于 2021-9-3 17:16:43

HELP

>>> 爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上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('在程序限定的范围内找不到答案!')


这个课后题 看不懂
1.   X是因为每次7步可以刚好走完所以是7?
2.   i为什么是1
3.FLAG又是什么       求解

逃兵 发表于 2021-9-3 17:22:24

1.   X是因为每次7步可以刚好走完所以是7?
是的
2.   i为什么是1
从第1个7楼开始,不满足就第2个7楼(14楼)...
3.FLAG又是什么
FLAG是个自己设置的开关
满足(x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5)条件后,FLAG变为1,不满足就是0

g476292825 发表于 2021-9-3 18:00:52

逃兵 发表于 2021-9-3 17:22
是的

从第1个7楼开始,不满足就第2个7楼(14楼)...


那<= 100:   为什么是100

逃兵 发表于 2021-9-3 18:41:47

g476292825 发表于 2021-9-3 18:00


100是自己限定的范围,可以改

jhq999 发表于 2021-9-3 21:24:00

本帖最后由 jhq999 于 2021-9-3 21:28 编辑


i=楼梯阶数
i=i//7
i=i*7
while i>7:
        if (i%2 == 1) and (i%3 == 2) and (i%5 == 4) and (i%6==5):
                print(i)
        i=i-7


或者

i=楼梯阶数
i=i-(i%7)

while i>7:
        if (i%2 == 1) and (i%3 == 2) and (i%5 == 4) and (i%6==5):
                print(i)
        i=i-7

页: [1]
查看完整版本: HELP