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

问题描述:

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

   问台阶至少共有多少级?

记得以前学习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 - 爱因斯坦台阶问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值