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))

Python 递归计算分数数列-LMLPHP

04-30 19:28