欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python遞歸函數(shù)求n的階乘,優(yōu)缺點及遞歸次數(shù)設(shè)置方式

 更新時間:2020年04月02日 14:29:44   作者:浩-先生  
這篇文章主要介紹了python遞歸函數(shù)求n的階乘,優(yōu)缺點及遞歸次數(shù)設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

遞歸函數(shù)兩大特點:

1.能夠調(diào)用函數(shù)自身

2.至少有一個出口(結(jié)束函數(shù)自身調(diào)用)

函數(shù)實現(xiàn):

def calnum(num):
  if num != 1:
    # 遞歸調(diào)用自身函數(shù)
    csum = num * calnum(num - 1)
  else:
    # 設(shè)置遞歸出口
    csum = 1

  return csum

ret = calnum(5)
print(ret)

遞歸函數(shù)的缺點:

占用資源多,一般不會優(yōu)先選擇。

一個程序中python默認只允許調(diào)用自身1024次,超過這個次數(shù),

python解釋器會認為該程序執(zhí)行有錯誤而報錯停止

報錯信息:

RuntimeError: maximum recursion depth exceeded

當然python是支持自定義次數(shù)的:

import sys
# 設(shè)置允許的調(diào)用次數(shù)為2000
sys.setrecursionlimit(2000)

補充知識:python:編寫一個求菲波那奇數(shù)列的遞歸函數(shù),輸入n值,使用該遞歸函數(shù)

題目:

編寫一個求菲波那奇數(shù)列的遞歸函數(shù),輸入n值,使用該遞歸函數(shù),輸出如下圖形。例如:當n=6時。

            0
          0  1  1
        0  1  1  2  3
      0  1  1  2  3  5  8
    0  1  1  2  3  5  8 13 21
  0  1  1  2  3  5  8 13 21 34 55

規(guī)律:

1.每行第一個數(shù)為0;

2.第n行數(shù)的個數(shù)為2n-1;

3.第n行第m列數(shù)為第n行中第m-1列和m-2列數(shù)之和;

代碼:

def fei(i,j): #i為行數(shù),j為列數(shù)
  if i == 1 or j ==1:
    return 0
  elif j == 2 :
    return 1
  else:
    return fei(i,j-1) + fei(i,j-2)
 
for i in range(1,7):
  print()
  for k in range(1,7-i): #控制空格數(shù)
    print(" ",end="")
  for j in range(1,(2*i)): 
    print(fei(i,j),"",end="")

運行結(jié)果:

以上這篇python遞歸函數(shù)求n的階乘,優(yōu)缺點及遞歸次數(shù)設(shè)置方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python語言規(guī)范之Pylint的詳細用法

    Python語言規(guī)范之Pylint的詳細用法

    Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格標準(Pylint 默認使用的代碼風格是 PEP 8)和有潛在問題的代碼,接下來通過本文給大家介紹Python Pylint的使用,感興趣的朋友一起看看吧
    2021-06-06
  • Python 文件處理注意事項總結(jié)

    Python 文件處理注意事項總結(jié)

    這篇文章主要介紹了Python 文件處理注意事項總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 使用Django框架中ORM系統(tǒng)實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)增刪改查

    使用Django框架中ORM系統(tǒng)實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)增刪改查

    這篇文章主要介紹了使用Django的ORM實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)增刪改查方法,文中附含詳細示例代碼以及過程詳解,有需要的朋友可以借鑒參考下
    2021-09-09
  • python 列表、字典和集合的添加和刪除操作

    python 列表、字典和集合的添加和刪除操作

    今天小編就為大家分享一篇python 列表、字典和集合的添加和刪除操作,有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 利用Python進行金融數(shù)據(jù)分析的全過程

    利用Python進行金融數(shù)據(jù)分析的全過程

    金融數(shù)據(jù)分析在現(xiàn)代金融行業(yè)中扮演著至關(guān)重要的角色,通過使用Python編程語言,我們可以對大量金融數(shù)據(jù)進行處理、分析和可視化,從而獲得有價值的洞察,本篇文章將介紹如何使用Python進行金融數(shù)據(jù)分析,需要的朋友可以參考下
    2024-08-08
  • tf.concat中axis的含義與使用詳解

    tf.concat中axis的含義與使用詳解

    今天小編就為大家分享一篇tf.concat中axis的含義與使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python基礎(chǔ)學習列表+元組+字典+集合

    Python基礎(chǔ)學習列表+元組+字典+集合

    這篇文章主要介紹了Python基礎(chǔ)學習列表+元組+字典+集合,文章接上一篇內(nèi)容學習,主要針對python零基礎(chǔ)的同學,感興趣的話就學起來吧
    2022-05-05
  • Python黑帽編程 3.4 跨越VLAN詳解

    Python黑帽編程 3.4 跨越VLAN詳解

    VLAN(Virtual Local Area Network),是基于以太網(wǎng)交互技術(shù)構(gòu)建的虛擬網(wǎng)絡(luò),既可以將同一物理網(wǎng)絡(luò)劃分成多個VALN,也可以跨越物理網(wǎng)絡(luò)障礙,將不同子網(wǎng)中的用戶劃到同一個VLAN中。這篇文章主要介紹了Python黑帽編程 3.4 跨越VLAN 的相關(guān)資料,需要的朋友參考下
    2016-09-09
  • python 合并列表的八種方法

    python 合并列表的八種方法

    這篇文章主要介紹了python 連接列表的八種方法,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • pandas group分組與agg聚合的實例

    pandas group分組與agg聚合的實例

    這篇文章主要介紹了pandas group分組與agg聚合的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論