Python 递归计算分数数列

2019-04-25 06:55:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

 


原文链接:https://www.cnblogs.com/Alins/p/10747822.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Django之CSRF跨站请求伪造(老掉牙的钓鱼网站模拟)

下一篇:python 线程(一)理论部分