python中的阶乘求和公式_Python阶乘求和的方法

python中的阶乘求和公式_Python阶乘求和的方法Python 阶乘求和的方法题目描述 获得用户输入的整数 n 输出 1 2 n 的值 如果输入数值为 0 负数 非数字或非整数 输出提示信息 输入有误 请输入正整数 推荐学习 Python 视频教程 方法一 factTest1def a input sum 0ifa isdigit n eval a ifn gt 0 fact 1foriinr

python中的阶乘求和公式_Python阶乘求和的方法

Python阶乘求和的方法

题目描述:

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

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

(推荐学习:Python视频教程)

方法一:#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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230627.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月12日 下午5:01
下一篇 2026年2月12日 下午5:22


相关推荐

  • 玩是学编程的最好方式

    玩是学编程的最好方式上周末晚上好朋友找我聊天 说他最近在学习 Python 但却总处于两天打渔三天晒网的状态 他很想学好 可是学习效率低下 事倍功半 但却不知道问题出在哪里 所以向我请教学习编程之法 看到好朋友有如此学习上进之心 我也备受鼓舞 下定决心要帮他排忧解难 但说来容易 做起来难 一时之间 我也不知道如何下手 说一千道一万 首先应当对现有问题有个定义 然后再对症下药 可问题的症结究竟在哪里呢 是学习不够用心 不够专注 还是好朋友不适合学习 Python 心中提出了无数个设想 但却总觉得没有 get 到问题的本质 那问题的本质

    2026年3月17日
    2
  • 自进化人工智能体的全面综述:连接基础模型与终身自主智能系统的新范式

    自进化人工智能体的全面综述:连接基础模型与终身自主智能系统的新范式

    2026年3月16日
    3
  • mysql登录出现1045错误修改方法[通俗易懂]

    mysql登录出现1045错误修改方法[通俗易懂]在cmd中输入mysql-uroot-p出现1045错误如下:ERROR1045(28000):Accessdeniedforuser’root’@’localhost'(usingpassword)解决方法:1.先找到mysqlbin目录下的my.ini文件,在[mysql]下面加上skip-grant-tables用于跳过密码2.重启服务器net

    2022年6月11日
    54
  • IP代理池的使用

    IP代理池的使用参考书籍:python3网络爬虫开发与实战作者个人博客:https://cuiqingcai.com/下载IP代理池的程序,其作者放在了GitHub:https://github.com/Python3WebSpider/ProxyPool需要的工具:pycharm、各种库、python37、redis安装、redis可视化工具(在参考书籍作者博客中都有安装方法)1、下载IP…

    2022年5月9日
    66
  • window修改host文件权限_win10hosts文件在哪

    window修改host文件权限_win10hosts文件在哪文章目录第一步进入host目录下第二步编辑hosts文件中users用户的属性第三步授权users用户完全控制权限第四步编辑hosts文件第一步进入host目录下第二步编辑hosts文件中users用户的属性第三步授权users用户完全控制权限第四步编辑hosts文件格式IP地址(空格)网址202.108.22.5www.baidu.com…

    2022年10月10日
    5
  • verilog变长移位寄存器「建议收藏」

    verilog变长移位寄存器「建议收藏」verilog变长移位寄存器普通的移位寄存器可以按如下设置,下面是一个一次移动一位的移位寄存器。moduleshift_stationary(clk,dat,ctrl,shift_out);inputclk;input[15:0]dat;input[1:0]ctrl;outputreg[15:0]shift_out;always@(posedgeclk)begincase(ctrl)2’b00:begin

    2022年7月16日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号