|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
大家好,关于下面的这个问题,我自己写了代码,但是运行的时候得不到结果,有没有大神可以帮忙解答一下原因?写的非常简略(勿喷谢谢)
有一个长阶梯,若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6 阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。求解该阶梯的最终数量?
step = 7
i = 1
while step >= 7:
if step % 7 == 0 and step % 6 == 5 and \
step % 5 == 4 and step % 3 == 2 and \
step % 2 == 1:
print(step)
break
else:
i = i + 1
step = step * i
最后一行代码有问题,你 step = step * i 下次循环开始都是用上个循环 step * i 后的值了,而不是以 7 的倍数增加
比如第一次循环: i = 2 step = 7 * 2 = 14 ,此时你将 step = 14 了
那么第二次循环: i = 3 step = 14 * 3 = 42 中间都跳过其它 7 的倍数了
所以这个数增长的非常快,越往后,漏 7 的倍数越多,所以你应该将最后一行代码修改成 step = i * 7 即可
- step = 7
- i = 1
- while step >= 7:
- if step % 7 == 0 and step % 6 == 5 and \
- step % 5 == 4 and step % 3 == 2 and \
- step % 2 == 1:
- print(step)
- break
- else:
- i = i + 1
- step = i * 7
复制代码
|
|