Python 練習例24
問題:次の分数の数列がある:2/1、3/2、5/3、8/5、13/8、21/13...この数列の前20項の和を求めよ。
プログラム分析:分子と分母の変化の規則を把握してください。
プログラムのソースコード:
方法1:
実例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 2.0
b = 1.0
s = 0
for n in range(1,21):
s += a / b
t = a
a = a + b
b = t
print (s)
方法2:
実例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 2.0
b = 1.0
s = 0.0
for n in range(1,21):
s += a / b
b,a = a , a + b
print (s)
s = 0.0
for n in range(1,21):
s += a / b
b,a = a , a + b
print (s)
方法3:
実例(Python 2.x)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 2.0
b = 1.0
l = []
l.append(a / b)
for n in range(1,20):
b,a = a,a + b
l.append(a / b)
print reduce(lambda x,y: x + y,l)
実例(Python 3.x)
#!/usr/bin/python
from functools import reduce
a = 2.0
b = 1.0
l = []
l.append(a / b)
for n in range(1,20):
b,a = a,a + b
l.append(a / b)
print (reduce(lambda x,y: x + y,l))
上記の実例の出力結果は次のとおりです:
32.6602607986その他の拡張