菜鸟笔记
提升您的技术认知

python:爱因斯坦阶梯问题

爱因斯坦阶梯问题

解释:设有台阶若干,每跨2阶,最后余1阶,跨3阶余2阶,跨5阶余4阶,跨6阶余5阶,跨7阶正好到达阶梯顶部。
分析:先假设有i,余2等于1,余3等于2,以此类推。(代码1)
i%2 == 1 and i%3 == 2 and  i%5 == 4 and i%6 == 5 and i%7 == 0

符合以上代码即可。
可以使用while和for语句进行书写

第一种(while判定)(代码2)

#爱因斯坦阶梯问题
i = 1
while i % 2 != 1 or i % 3 != 2 or  i % 5 != 4 or i % 6 != 5 or i % 7 != 0:
      i+=1
print(i)    
先进行判定如果,如果和全部不符合条件则为爱因斯坦阶梯数。

第二种(while判定)(代码3)

i=1
while True:  #无限循环
      i+=1
      if(i%2==1 and i%3==2 and  i%5==4 and i%6==5 and i%7==0):
            print(i)
            break #跳出该循环
while无限循环再用if进行判定,符合条件输出。(如果不用break退出循环可以判定出所有的爱因斯坦阶梯数,但是是无限循环!)

第三种(for判定)(代码4)

i = 1
for i in range(10000):
    if (i % 2 == 1 and i % 3 == 2 and  i % 5 == 4 and r i % 6 == 5 and i % 7 == 0):
        print(i)
        break

最后的结果为 119