ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

五、函数_8.递归函数

2021-10-27 02:32:11  阅读:255  来源: 互联网

标签:F1 F2 F3 F4 函数 递归函数 print


递归函数

递归函数
    定义一个函数后,在此函数内调用自己
    递归函数必须要有结束,否则会一直循环下去,直到栈溢出
    递归函数的执行过程是一层层向内执行到最里层,再一层层向外执行

递归函数的缺点
    递归函数的效率并不高,性能浪费比较大,多数需求也能由for循环完成,所以能不用的情况尽量不要使用

# 递归函数
def recursion(n) :
    print('●  '*n)

    if n > 1 :
        recursion(n-1)

    print('●  '*n)

recursion(7)

●  ●  ●  ●  ●  ●  ●  
●  ●  ●  ●  ●  ●  
●  ●  ●  ●  ●  
●  ●  ●  ●  
●  ●  ●  
●  ●  
●  
●  
●  ●  
●  ●  ●  
●  ●  ●  ●  
●  ●  ●  ●  ●  
●  ●  ●  ●  ●  ●  
●  ●  ●  ●  ●  ●  ●  
实现阶乘 方法一:计算过程在函数从内向外执行时,计算顺序是把数字从小到大相乘
def factorial1(n) :

    if n >=3 :
        factorial1(n-1)

    if n == 2 :
        p = 1
    else :
        global m
        p = m

    p = p * n
    m = p
    print(p)

factorial1(7)

2
6
24
120
720
5040
实现阶乘 方法二:计算过程在程序从外向内执行时,计算顺序是把数字从大到小相乘
p = 1
def factorial2(n) :
    global p
    p = p * n

    if n >= 3 :
        factorial2(n-1)

    if n == 2 :
        print(p)

factorial2(5)

120
实现阶乘 方法三
def factorial3(n) :
    if n == 1 :
        return 1
    else :
        return n*factorial3(n-1)

res = factorial3(6)
print(res)

720
6*F5
        5*F4
                4*F3
                        3*F2
                                2*F1
                                        return 1
                                2*1 =2
                        3*2 =6
                4*6 =24
        5*24 =120
6*120 =720
实现斐波那契数列

求第n位的值,1,1,2,3,5,8,13,21,34,55......

方法一
def Fibonacci(n) :
    if n == 1 or n == 2 :
        return 1
    else :
        return Fibonacci(n-1)+Fibonacci(n-2)

res = Fibonacci(5)
print(res)

5
F6+F5   F7
    F5+F4 F4+F3     F6+F5
                F4+F3 F3+F2 F3+F2 F2+F1     F5+F4 + F4+F3
                                        F3+F2 F2+F1 F2+F1 1 F2+F1 1 1+1     4
                                                                        F2+F1 1 2 2 1 2 1 2     3
                                                                                            2 1 2 2 1 2 1 2     2
方法二

需要获取第X位,则发生了X-2次计算,所以用X控制计算次数,X每减少1,计算次数增加1,直至X减少到X=3时,计算完成

n1 = 0
n2 = 1
def fibonacci1(i) :
    global n1,n2

    if i == 1 :
        print(n1)
    elif i == 2 :
        print(n2)

    n = n1 + n2    # 1 2 3
    n1 = n2        # 1 1 2
    n2 = n         # 1 2 3

    if i > 3 :
        fibonacci1(i-1)
    elif i == 3 :
        print(n)
fibonacci1(7)

8

标签:F1,F2,F3,F4,函数,递归函数,print
来源: https://www.cnblogs.com/HyeJeong/p/15468736.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有