Python 練習例11
問題:古典的な問題: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
その他の拡張