爱因斯坦台阶问题(Python实现)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44002167/article/details/102613841
问题描述:

   有人走一台阶,若以每步走两级则最后剩下一级;
   若每步走三级则剩两级;若每步走四级则剩三级;
   若每步走五级则剩四级;若每步走六级则剩五级;
   若每步走七级则刚好不剩。

   问台阶至少共有多少级?

记得以前学习C语言的时候是看到过这道题的,emmm,也许吧。现在学python再试下用python解题。

思路描述:

穷举遍历
   代码如下:

for x in range(100):
    if x % 2 == 1 and x % 3 == 2 and x % 4 == 3 and x % 5 == 4 and x % 6 == 5:
        print(x)
        break

   说实在的,效率是真的不咋高啊。。。

   那就换思路吧。

   已经知道阶梯的总数X分别除以2、3、4、5、6余数分别为1、2、3,4、5,也就是说是其倍数值-1。 那么求出2,3,4,5,6的最小公倍数数为60,故答案必须是60的倍数-1。

i = 60 - 1
while True:
    if i % 7 == 0:
        break
    else:
        i += 60

print(i)
结果截图:

在这里插入图片描述

参考

数学回味系列之16 - 爱因斯坦台阶问题

猜你喜欢

转载自blog.csdn.net/qq_44002167/article/details/102613841
今日推荐