麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > Python > 正文

Python中使用遞歸函數(shù)

2023-04-25 12:32:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在一個(gè)函數(shù)定義中,自己調(diào)用自己的編程方法稱之為遞歸(Recursion)。

一、遞歸簡(jiǎn)介

一般來(lái)說(shuō),遞歸需要有遞歸前進(jìn)階段、遞歸邊界條件和遞歸返回階段。當(dāng)遞歸條件不滿足時(shí),遞歸前推;當(dāng)遞歸條件滿足時(shí),遞歸返回。

如我們要求5的階乘(5!),則:

5! = 5 × 4!

我們需要求出4的階乘后再乘以5就行了,而要求4!:

4! = 4 × 3!

我們需要進(jìn)一步求出3的階乘,而

3! = 3 × 2!

我們需要進(jìn)一步求出2的階乘,而

2! = 2 × 1!

這時(shí)我們知道1的階乘是1。以上這些步驟就是遞歸的“前推”過(guò)程。

在求出1的階乘后,我們就知道

2! = 2 × 1! = 2× 1 = 2

則:

3! = 3 × 2! = 3 × 2 = 6

則:

4! = 4 × 3! = 4 × 6 = 24

則:

5! = 5 × 4! = 5 × 24 = 120

這樣,我們就得到了5!是120。上面這些步驟就是遞歸“返回”的過(guò)程。

用圖表示如下:

Python遞歸示意圖

二、使用遞歸方法求一個(gè)數(shù)的階乘

#遞歸法求n!

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

result = factorial(5)
print("5!= ", result)
result = factorial(10)
print("10!= ", result)

執(zhí)行結(jié)果如下:

5!= 120
10!= 3628800

三、使用遞歸方法求斐波那契數(shù)列

在前面文章中《Python使用while循環(huán)輸出斐波那契數(shù)列》介紹了斐波那契數(shù)列的算法,并給出了幾種求斐波那契數(shù)列的算法。這里再重新給出一遍。

def Fibonacci(n):
    if n < 0:
        raise IndexError('參數(shù)不能小于0。')
    if n == 0:
        return 0
    elif n <= 2:
        return 1
    else:
        return Fibonacci(n - 1) + Fibonacci(n - 2)

for i in range(16):
    print(Fibonacci(i), end = " ")

輸出結(jié)果如下:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

四、使用遞歸的利弊

使用遞歸有時(shí)使程序更加簡(jiǎn)潔,減少代碼量。但對(duì)新手來(lái)說(shuō),遞歸比較難以理解,而且使用不當(dāng)?shù)脑挘赡苁钩绦驘o(wú)法正常終止。大多數(shù)情況下,可以使用循環(huán)來(lái)替代遞歸。

本文(完)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: av在线播放免费观看 | 久久99国产伦子精品免费 | 国产精品视频免费网站 | 毛片视频网站 | 精品亚洲va在线va天堂资源站 | 日日爱夜夜操 | 成人在线视频免费观看 | 国产成人精品二区 | 欧美成人三级视频 | 精国品产一区二区三区有限公司 | 国产在线一区二区三区 | 亚洲一区二区国产 | 久草干| 中文字幕一区二区三区四区 | 久久美女免费视频 | 中文字幕偷拍 | xxxⅹ96日本护士hd | 9999免费视频 | 56av国产精品久久久久久久 | 龙的两根好大拔不出去h | 国产成人视屏 | 亚洲精品午夜国产va久久成人 | 国产一区二区三区四区五区加勒比 | 欧美扩阴视频 | 极品美女一级毛片 | 福利在线小视频 | 国产精品美女久久久久久不卡 | 在线播放一区二区三区 | 成人免费乱码大片a毛片视频网站 | 欧美一区2区三区4区公司二百 | 国产精品久久久久影院老司 | 欧美高清一级片 | 超碰97国产在线 | 国产精品视频亚洲 | 2019亚洲日韩新视频 | 黄色特级片黄色特级片 | 国产精品7区 | xnxx 美女19| 国产精品久久久麻豆 | 久久精品二区 | 最新黄色电影网站 |