Python 練習例24

Python 100例

問題:次の分数の数列がある: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

Python 100例

その他の拡張