Python阶乘求和的代码详解


Posted in Python onFebruary 14, 2020

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阶乘求和的方法的详细内容,感谢大家的学习和对三水点靠木的支持。

Python 相关文章推荐
Python实现对excel文件列表值进行统计的方法
Jul 25 Python
实例Python处理XML文件的方法
Aug 31 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
python pandas修改列属性的方法详解
Jun 09 Python
python write无法写入文件的解决方法
Jan 23 Python
详解Python3 pandas.merge用法
Sep 05 Python
python保存log日志,实现用log日志画图
Dec 24 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
如何利用Python 进行边缘检测
Oct 14 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
Python生成九宫格图片的示例代码
Apr 14 Python
Python pip配置国内源的方法
Feb 14 #Python
Python3基本输入与输出操作实例分析
Feb 14 #Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 #Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 #Python
pytorch实现MNIST手写体识别
Feb 14 #Python
Python3.7实现验证码登录方式代码实例
Feb 14 #Python
Python逐行读取文件内容的方法总结
Feb 14 #Python
You might like
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
Jquery中Event对象属性小结
2015/02/27 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
python创建n行m列数组示例
2019/12/02 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
活动倡议书范文
2014/05/13 职场文书
企业理念标语
2014/06/09 职场文书
生物学专业求职信
2014/07/23 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
南京导游词
2015/02/03 职场文书
导游词之青岛崂山
2019/12/27 职场文书
python实现图片批量压缩
2021/04/24 Python
Oracle 死锁的检测查询及处理
2021/09/25 Oracle