加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-递归函数

发布时间:2020-12-20 12:47:58 所属栏目:Python 来源:网络整理
导读:递归,就是在运行的过程中调用自己。 递归必须要有三个要素: ①、边界条件 ②、递归前进段 ③、递归返回段 当边界条件不满足时,递归前进;当边界条件满足时,递归返回。 递归经典的题目求解: n的阶层问题的求解: def recursive_func(num): """ 计算num的

递归,就是在运行的过程中调用自己。

递归必须要有三个要素:

①、边界条件

②、递归前进段

③、递归返回段

当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

递归经典的题目求解:

n的阶层问题的求解:

def recursive_func(num):
    """
    计算num的阶层:num*(num-1)*(num-2)....
    :param num: 输入一个数字
    :return:返回递归计算后的值
    """
    if num == 1:
        return 1
    elif num <= 0:
        print("输入错误")
    else:
        return num * recursive_func(num-1)


res = recursive_func(0)
print(res)

怎么样不要用递归去实现。。

def recursive_func_1(num):
    """
    不采用递归的方式进行计算num的阶层
    :param num: 一个数字
    :return: 返回递归的计算后的值
    """
    res = 1
    if num <= 0:
        print("输入错误")
    for i in range(1,num + 1):
        res *= i
    return res


res = recursive_func_1(5)  # 5 * 4 * 3 * 2 * 1
print(res) # 120

实现n个斐波那契数列

# 递归方式:
def fibonacci_sequence(n):
    """
    实现n个斐波那契数列
    :param n: 数字
    :return: 返回斐波那契数
    """
    if n == 1:
        return 1
    elif n == 2:
        return 1
    else:
        return fibonacci_sequence(n-1) + fibonacci_sequence(n-2)

ret = fibonacci_sequence(10)

res = [fibonacci_sequence(i) for i in range(1,10)]  # [1,1,2,3,5,8,13,21,34]
print(res)

# 不是递归的方法

def fibonacci_sequence_1(n):
    """
    计算n个斐波那契数列:
    :param n: 数字
    :return: 放回斐波那契数:
    """
    res = [1,1]
    while n > 0:
        res.append(res[-1]+res[-2])
        n -= 1
    return res


ret = fibonacci_sequence_1(10)

print(ret)  # [1,34,55,89,144]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读