python:アインシュタイン階段問題

5494 ワード

アインシュタイン階段問題
解釈:階段がいくつか設けられていて、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文で書くことができます
第1種(while判定)(コード2)
#        
while i % 2 != 1 or i % 3 != 2 or  i % 5 != 4 or i % 6 != 5 or i % 7 != 0:
      i+=1
print(i)    

まず判定を行い,すべてと条件が合わなければアインシュタイン階段数とする.
第2種(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がループを脱退しなければすべてのアインシュタイン階段数を判定できるが無限ループ!)
第3種(for判定)(コード4)
for i in (i % 2 != 1 or i % 3 != 2 or  i % 5 != 4 or i % 6 != 5 or i % 7 != 0:
      print(i)

最終結果は119
白さんは出発して、もし異なる意見があれば、みんながもっと討論することを望んでいます.ありがとうございます!