C語言的課后習題
求數列:2/1,3/2,5/3,8/5,13/8,21/13,...前50項的和
數列規律:
第二項的分母是【前一項分子】
第二項的分子是【前一項分子與分母的和】
from fractions import Fraction
def fn(x):
"""
計算每一項的值
"""
time = 1
fz = 2
fm = 1
if x == 1:return fz / fm
#if x == 1:return Fraction(fz, fm) 這句話是分數表示
else:
while time < x :
cost = fz + fm
fm = fz
fz = cost
time = time + 1
return fz / fm
#return Fraction(fz, fm)
def sum_fn(x):
"""
遞歸計算,進行函數每一項的相加
"""
if x == 1:return 2
else:
return fn(x) + sum_fn(x-1)
a = int(input("請輸入連續加到的項數:"))
print(sum_fn(a))

