python阶乘求和的代码_Python阶乘求和的代码详解

Python阶乘求和的方法

题目描述:

获得用户输入的整数n,输出 1!+2!+…+n!的值。

如果输入数值为0、负数、非数字或非整数,输出提示信息:输入有误,请输入正整数。

方法一:

#factTest1

def main():

a = input()

sum = 0

if a.isdigit():

n = eval(a)

if n > 0:

fact = 1

for i in range(1, n+1):

fact *= i

sum += fact

print(sum)

else:

print("输入有误,请输入正整数")

else:

print("输入有误,请输入正整数")

main()

方法二:递归思想

#factTest2

import sys

sys.setrecursionlimit(5000)

def getSum(i):

sum = 0

if i==0:

return 0

else:

for x in range(1,i+1):

sum += fact(x)

return sum

def fact(m):

if m==0:

return 1

else:

return m*fact(m-1)

def main():

n = input()

if n.isdigit():

a = eval(n)

if a>0:

result = getSum(a)

print(result)

else:

print("输入有误,请输入正整数")

else:

print("输入有误,请输入正整数")

main()

问题总结:

当使用递归方法求1024的阶乘时,出现了一个异常:RecursionError: maximum recursion depth exceeded in comparison,超出了递归的最大深度。一些网友提到Python中默认的最大递归深度为1000,但在实际测试中,我的电脑到997的时候就出现异常了,不知道这是由什么决定的。因此,为了能够计算1024的阶乘,需要为最大递归深度赋予一个更大的值。这里可以采用以下方法:

import sys

sys.setrecursionlimit(5000) #修改为5000

另外,也可以查看最大递归深度:

import sys

sys.getrecursionlimit() # output:1000

以上就是Python阶乘求和的方法的详细内容,感谢大家的学习和对的支持。

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
Python3 100例 实例001:字组合 实例002:“个税计算” 实例003:完全平方 实例004:这天第几天 实例005:三排序 实例006:斐波那契列 实例007:copy 实例008:九九乘法表 实例009:暂停一秒输出 实例010:给人看时间 实例011:养兔子 实例012:100到200 实例013:所有水仙花 实例014:分解质因 实例015:分归档 实例016:输出日期 实例017:字符串构成 实例018:复读机相加 实例019:完 实例020:高空抛物 实例021:猴子偷桃 实例022:比赛对手 实例023:画菱形 实例024:斐波那契列II 实例025: 阶乘求和 实例026:递归求阶乘 实例027:递归输出 实例028:递归求等差列 实例029:反向输出 实例030:回文 实例031:字母识词 实例032:反向输出II 实例033:列表转字符串 实例034:调用函 实例035:设置输出颜色 实例036:算素 实例037:排序 实例038:矩阵对角线之 实例039:有序列表插入元素 实例040:逆序列表 实例041:类方法与变量 实例042:变量作用域 实例043:作用域、类方法与变量 实例044:矩阵相加 实例045:求和 实例046:打破循环 实例047:函交换变量 实例048:字比大小 实例049:lambda 实例050:随机 实例051:按位与 实例052:按位或 实例053:按位异或 实例054:位取反、位移动 实例055:按位取反 实例056:画圈 实例057:画线 实例058:画矩形 实例059:画图(丑) 实例060:字符串长度 实例061:杨辉三角 实例062:查找字符串 实例063:画椭圆 实例064:画椭圆、矩形 实例065:画组合图形 实例066:三排序 实例067:交换位置 实例068:旋转列 实例069:报 实例070:字符串长度II 实例071:输入输出 实例072:创建链表 实例073:反向输出链表 实例074:列表排序、连接 实例075:不知所云 实例076:做函 实例077:遍历列表 实例078:字典 实例079:字符串排序 实例080:猴子分桃 实例081:求未知 实例082:八进制转十进制 实例083:制作奇 实例084:连接字符串 实例085:整除 实例086:连接字符串II 实例087:访问类成员 实例088:打印星号 实例089:解码 实例090:列表详解 实例091:time模块 实例092:time模块II 实例093:time模块III 实例094:time模块IV 实例095:转换时间格式 实例096:计算复读次 实例097:磁盘写入 实例098:磁盘写入II 实例099:磁盘读写 实例100:列表转字典
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页