【趣味学算法】07_爱因斯坦的数学题

注: 本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正

有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶,则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在1到n内,有多少个数能满足?要求可多次测试,输入0结束测试

根据题意,用变量 x 表示阶梯数,则阶梯数 x 应该同时满足以下条件:
若每步跨 2 阶,则最后剩 1 阶,即 x%2=1
若每步跨 3 阶,则最后剩 2 阶,即 x%3=2
若每步跨 5 阶,则最后剩 4 阶,即 x%5=4
若每步跨 6 阶,则最后剩 5 阶,即 x%6=5
若每步跨 7 阶,最后才正好一阶不剩,即 x%7=0

def computing_ladder(n):
    sum = 0
    for i in range(7,n+1):
        if (i%2==1)and(i%3==2)and(i%5==4)and(i%6==5)and(i%7==0):
            sum += 1
            print('在1~{}之间的阶梯数为:{}'.format(n,i))
    print('在1~{}之间的阶梯数有{}个'.format(n,sum))
    
if __name__ == '__main__':
    while True:
        n = int(input('请输入n:'))
        if n == 0: #以0结束测试
            break
        else:
            computing_ladder(n)
请输入n:99
在1~99之间的阶梯数有0个

请输入n:999
在1~999之间的阶梯数为:119
在1~999之间的阶梯数为:329
在1~999之间的阶梯数为:539
在1~999之间的阶梯数为:749
在1~999之间的阶梯数为:959
在1~999之间的阶梯数有5个

请输入n:567
在1~567之间的阶梯数为:119
在1~567之间的阶梯数为:329
在1~567之间的阶梯数为:539
在1~567之间的阶梯数有3个

请输入n:0
已退出
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值