您的当前位置:首页正文

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

2024-11-12 来源:个人技术集锦
问题描述:

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

   问台阶至少共有多少级?

记得以前学习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)
结果截图:

参考

显示全文