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="")
运行结果:
来源:https://blog.csdn.net/qq_42845260/article/details/82357198
标签:python,递归,阶乘
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
如何改良你的CSS代码编写结构
2008-09-29 16:03:00
![](https://img.aspxhome.com/file/UploadPic/up/2008092916133772.gif)
Windows下将Python文件打包成.EXE可执行文件的方法
2021-08-04 02:47:59
python替换字符串中的子串图文步骤
2021-06-23 22:02:47
![](https://img.aspxhome.com/file/2023/6/69006_0s.jpg)
浅谈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
![](https://img.aspxhome.com/file/2023/2/96172_0s.png)
解决python spyder 突然打不开的问题
2022-07-07 19:43:06
基于Golang实现Redis协议解析器
2024-04-27 15:37:41
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2023-03-07 19:19:59
![](https://img.aspxhome.com/file/2023/4/83934_0s.png)
关于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
![](https://img.aspxhome.com/file/2023/6/88486_0s.jpg)
MySQL数据优化-多层索引
2024-01-20 10:13:46
![](https://img.aspxhome.com/file/2023/3/100343_0s.png)
php中正则替换函数ereg_replace用法实例
2023-06-13 03:03:51
python实战之百度智能云使人像动漫化
2021-01-19 07:15:11
![](https://img.aspxhome.com/file/2023/9/84869_0s.png)
python之tensorflow手把手实例讲解猫狗识别实现
2021-12-26 14:46:11
![](https://img.aspxhome.com/file/2023/9/106999_0s.png)
JavaScript刷新页面的几种方法总结
2024-04-22 12:53:01
聊聊QT添加MySQL驱动依赖的问题
2024-01-14 10:25:58
![](https://img.aspxhome.com/file/2023/9/118459_0s.png)
PHP实现判断二叉树是否对称的方法
2023-06-28 13:24:10
网页设计趋势之:”勾引”用户的按钮
2009-02-17 12:09:00
![](https://img.aspxhome.com/file/UploadPic/20092/17/but-500x47-23s.gif)