第二版第11讲的课后作业有一点不懂
本帖最后由 九歌独吟 于 2020-4-12 15:51 编辑. 爱因斯坦曾出过这样一道有趣的数学题:
有一个长阶梯,若每步上 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 = steps * (i + 1)
i = i + 1
if FIND == True:
print('阶梯数是:', steps)
else:
print('在程序限定的范围内找不到答案!')
为什么我这样写会返回找不到答案,而把其中一句改成
steps = 7 *(i + 1)
就可以计算出结果?
我想通了,我写的steps会按7,14,42,168,840这样递增
应该是每次循环step+7,
你写的steps = steps * (i + 1) 每次循环step都是几何级的增长啊
第一次step=7 ,第二次step=7*2=14, 第三次循环 step=14*3=42, 第四次循环 step=42*4=168…… step太大了
页:
[1]