Python 練習例11

Python 100例

問題:古典的な問題:1つがいのウサギがいる。生まれてから3ヶ月目から毎月1つがいのウサギを産む。子ウサギは3ヶ月に成長すると、毎月また1つがいのウサギを産む。もしウサギが死なないとすれば、毎月のウサギの総数は何つがいになるか?

プログラム分析:ウサギの増え方の規則は数列 1,1,2,3,5,8,13,21.... である。

プログラムのソースコード:

例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- f1 = 1 f2 = 1 for i in range(1,22): print '%12ld %12ld' % (f1,f2), if (i % 3) == 0: print '' f1 = f1 + f2 f2 = f1 + f2

例(Python 3.0+)

#!/usr/bin/python3 f1 = 1 f2 = 1 for i in range(1,22): print ('%12ld %12ld' % (f1,f2), end=" ") if (i % 3) == 0: print ('') f1 = f1 + f2 f2 = f1 + f2

上記の例の出力結果は次のとおりです:

           1           1            2           3            5           8 
          13          21           34          55           89         144 
         233         377          610         987         1597        2584 
        4181        6765        10946       17711        28657       46368 
       75025      121393       196418      317811       514229      832040 
     1346269     2178309      3524578     5702887      9227465    14930352 
    24157817    39088169     63245986   102334155    165580141   267914296 

Python 100例

その他の拡張