注: 本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备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
已退出