Python阶乘求和的代码详解

  

<强> Python阶乘求和的方法

  

题目描述:

  

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

  

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

  

<强>方法一:

        # factTest1      def main ():=输入()      和=0      如果a.isdigit ():      n=eval ()      如果n比;0:      事实=1      我的范围(1,n + 1):      *=我      和+=的事实      打印(总和)      其他:      打印(“输入有误,请输入正整数”)      其他:      打印(“输入有误,请输入正整数”)      main ()      

<强>方法二:递归思想

        # factTest2      导入系统      sys.setrecursionlimit (5000)      def getSum(我):      和=0      如果我==0:      返回0      其他:      x的范围(1 + 1):      和+=事实(x)      返回总和      def事实(m):      如果m==0:      返回1      其他:      返回m *事实(m - 1)      def main ():      n=输入()      如果n.isdigit ():      一个=eval (n)      如果a> 0:      结果=getSum (a)      打印(结果)      其他:      打印(“输入有误,请输入正整数”)      其他:      打印(“输入有误,请输入正整数”)      main ()      

问题总结:

  

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

        导入系统      sys.setrecursionlimit(5000) #修改为5000      

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

        导入系统      sys.getrecursionlimit() #输出:1000      

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

Python阶乘求和的代码详解