python递归函数求n的阶乘,优缺点及递归次数设置方式
作者:浩-先生 发布时间:2022-12-08 16:17:08
标签:python,递归,阶乘
递归函数两大特点:
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


猜你喜欢
- 创建项目scrapy startproject zhaoping创建爬虫cd zhaopingscrapy genspider hr zha
- 路由原理在Tornado框架中,路由是指将请求的URL映射到对应的处理函数上,这个过程需要通过正则表达式来实现。Tornado使用了一种叫做
- ASP.net处理文件上传就简单的多了,我呢也是在学习中,顺便写写学习笔记。 先在表单中添加enctype="multipart/
- python的应用实践zipkin,需要py_zipkin,使用pip进行安装py_zipkin的时候出现问题, 根据stackoverfl
- 一.vue路由传值在日常使用vue操作时,某些场景需要用到路由之间的传值,就是在使用router跳转到另外一个路由时需要携带参数一并传过去,
- 通常,当一个页面有太多信息要显示,而一页塞又不下所有信。为了请求速度、美观以及其他的各种理由,分页就会被我们请过来。让我们的用户可以选择是否
- 前言CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:
- python之参数,定义时小括号中的参数,用来接收参数用的,称为 “形参”调用时小括号中的参数,用来传递给函数用的,称为 “实参”。1、思考
- 项目中涉及到一些加密解密的需求,了解并尝试了几种加密解密方法,以下:方法一:md5加密注意:md5的特性就是只能加密,所以用md5加密的时候
- 有时候我们需要查看mysql的版本信息,那么就可以参考下面的方法1、使用命令行模式进入mysql会看到最开始的提示符在命令行登录mysql,
- 本文实例讲述了Python设计模式之简单工厂模式。分享给大家供大家参考,具体如下:简单工厂模式(Simple Factory Pattern
- 不论是做WEB设计还是做交互模型,最快确立创意与设计效果的最好办法就是用笔在纸上绘制出来。不过从事IT行业的人很少一部分是来自美术学院。当然
- w3c range range 用来表示用户的选择区域,这块选择区域由两个边界位置界定,而位置则由其容器以及偏移量构成,称作 contain
- 浏览器的出现互联网的出现是人类信息交流方式的一次划时代的革命,在这场革命中有两个技术对互联网的发展起到了决定性的作用:一个技术带来的人类信息
- 当使用MySQL做站点的时候,肯定会有不知道的错误发生,怎么记录呢?以下是具体解决方法:class.method &n
- 在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os.system()os.system(cmd) 是在执行comma
- 1.命名空间先看看官方文档的一段话:命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的
- be前言:期末临近,考Python的同学可以练练问题描述:给定一段长度为N的整数序列A,请从中选出一段连续的子序列(可以为0)使得这段的总和
- SNMP标准引入一组ASN.1语言元素,称之为SMI(Structure of Management Information)。由SMI描述
- 在大的互联网公司干技术的基本都会碰到测试、预发布、线上这种多套环境的,来实现测试和线上正式环境的隔离,这种情况下,就难免会碰到秀逗了把测试的