Python 递归计算分数数列

Posted alins

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 递归计算分数数列相关的知识,希望对你有一定的参考价值。

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 递归计算分数数列的主要内容,如果未能解决你的问题,请参考以下文章

用递归方法计算斐波那契数列(Recursion Fibonacci Python)

Python之动态规划算法

用递归法计算斐波那契数列的第n项

Python 第五天 递归,计算器

C语言用递推和递归两种算法完成斐波那契数列的计算,给一下代码

禅与计算机程序设计艺术使用 16 门编程语言实现斐波那契数列:循环控制指令与函数递归思想