python中求阶乘的和,pythonn阶乘求和
Python阶乘求和的方法
题目描述:
得到用户输入的整数n,输出1!2!… n!的价值。
如果输入值为0、负数、非数字或非整数,输出提示信息:输入错误,请输入正整数。
(推荐学习:Python视频教程)
方法一:
#factTest1
定义主():
a=输入()
总和=0
如果a.isdigit():
n=eval(a)
如果编号为0:
事实=1
对于(1,n-1):范围内的I
事实*=我
总和=事实
打印(总和)
else:
打印(输入错误,请输入正整数)
else:
打印(输入错误,请输入正整数)
缅因()方法二:递归思想
#factTest2
导入系统
sys.setrecursionlimit(5000)
国防预算(一):
总和=0
如果i==0:
返回0
else:
对于范围(1,i 1):中的x
总和=事实(x)
返回总和
定义事实(m):
如果m==0:
返回1
else:
返回m *事实(m-1)
定义主():
n=输入()
if n.isdigit():
a=eval(n)
如果a0:
result=getSum(a)
打印(结果)
else:
打印(输入错误,请输入正整数)
else:
打印(输入错误,请输入正整数)
缅因()问题总结:
使用递归方法求1024的阶乘时出现异常:递归错误:超过最大递归深度比较而言,超过了最大递归深度。有网友提到Python中默认的最大递归深度是1000,但是在实际测试中,我的电脑到了997就异常了。我不知道这是由什么决定的。因此,为了计算1024的阶乘,需要给最大递归深度一个较大的值。这里可以采用以下方法:
导入系统
Sys.setrecursionlimit(5000) #被修改为5000。此外,您还可以检查最大递归深度:
导入系统
sys . getrecursionlimit()# output :1000以上是Python阶乘求和法的详细内容。其他相关文章请多关注盛行的IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。