python递归函数求n的阶乘,优缺点及递归次数设置方式

作者:浩-先生 时间:2022-12-08 16:17:08 

递归函数两大特点:

1.能够调用函数自身

2.至少有一个出口(结束函数自身调用)

函数实现:


def calnum(num):
 if num != 1:
   # 递归调用自身函数
   csum = num * calnum(num - 1)
 else:
   # 设置递归出口
   csum = 1

return csum

ret = calnum(5)
print(ret)

递归函数的缺点:

占用资源多,一般不会优先选择。

一个程序中python默认只允许调用自身1024次,超过这个次数,

python解释器会认为该程序执行有错误而报错停止

报错信息:

RuntimeError: maximum recursion depth exceeded

当然python是支持自定义次数的:


import sys
# 设置允许的调用次数为2000
sys.setrecursionlimit(2000)

补充知识:python:编写一个求菲波那奇数列的递归函数,输入n值,使用该递归函数

题目:

编写一个求菲波那奇数列的递归函数,输入n值,使用该递归函数,输出如下图形。例如:当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

规律:

1.每行第一个数为0;

2.第n行数的个数为2n-1;

3.第n行第m列数为第n行中第m-1列和m-2列数之和;

代码:


def fei(i,j): #i为行数,j为列数
 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): #控制空格数
   print(" ",end="")
 for j in range(1,(2*i)):
   print(fei(i,j),"",end="")

运行结果:

python递归函数求n的阶乘,优缺点及递归次数设置方式

来源:https://blog.csdn.net/qq_42845260/article/details/82357198

标签:python,递归,阶乘
0
投稿

猜你喜欢

  • 如何改良你的CSS代码编写结构

    2008-09-29 16:03:00
  • Windows下将Python文件打包成.EXE可执行文件的方法

    2021-08-04 02:47:59
  • python替换字符串中的子串图文步骤

    2021-06-23 22:02:47
  • 浅谈SQL与PLSQL开发实战

    2011-05-05 08:15:00
  • JS图片懒加载的优点及实现原理

    2024-04-18 09:45:34
  • CentOS 7.3上SQL Server vNext CTP 1.2安装教程

    2024-01-27 06:01:48
  • 解决python spyder 突然打不开的问题

    2022-07-07 19:43:06
  • 基于Golang实现Redis协议解析器

    2024-04-27 15:37:41
  • Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】

    2023-03-07 19:19:59
  • 关于axios如何全局注册浅析

    2024-04-27 16:03:40
  • C# 连接SQL数据库的方法及常用连接字符串

    2024-01-16 21:49:47
  • Windows7中配置安装MySQL 5.6解压缩版

    2024-01-26 16:02:34
  • MySQL数据优化-多层索引

    2024-01-20 10:13:46
  • php中正则替换函数ereg_replace用法实例

    2023-06-13 03:03:51
  • python实战之百度智能云使人像动漫化

    2021-01-19 07:15:11
  • python之tensorflow手把手实例讲解猫狗识别实现

    2021-12-26 14:46:11
  • JavaScript刷新页面的几种方法总结

    2024-04-22 12:53:01
  • 聊聊QT添加MySQL驱动依赖的问题

    2024-01-14 10:25:58
  • PHP实现判断二叉树是否对称的方法

    2023-06-28 13:24:10
  • 网页设计趋势之:”勾引”用户的按钮

    2009-02-17 12:09:00
  • asp之家 网络编程 m.aspxhome.com