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阶乘求和的方法的详细内容,更多请关注随便技术网其它相关文章!
python奇数阶乘求和_Python阶乘求和的方法相关推荐
- python深入与提高_Python深入01 特殊方法与多范式
Python一切皆对象,但同时,Python还是一个多范式语言(multi-paradigm),你不仅可以使用面向对象的方式来编写程序,还可以用面向过程的方式来编写相同功能的程序(还有函数式.声明式等 ...
- python格式化字符串漏洞_Python字符串格式化的方法(两种)
本文介绍了Python字符串格式化,主要有两种方法,分享给大家,具体如下 用于字符串的拼接,性能更优. 字符串格式化有两种方式:百分号方式.format方式. 百分号方式比较老,而format方式是比 ...
- python中len字典_Python 字典(Dictionary) len()方法
Python 字典(Dictionary) len()方法 描述 Python 字典(Dictionary) len() 函数计算字典元素个数,即键的总数.高佣联盟 www.cgewang.com 语 ...
- python阶乘倒数求和_Python阶乘求和的方法
题目描述: 获得用户输入的整数n,输出 1!+2!+-+n!的值. 如果输入数值为0.负数.非数字或非整数,输出提示信息:输入有误,请输入正整数. 方法一:#factTest1 def main(): ...
- python编写等差数列求和_python等差数列求和公式前 100 项的和实例
最近跑去学了下python,一个很简单的题,结果发现数学公示忘了,在不用for循环的情况下居然有些懵,记录为下.. 题:等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用变量 x1 表示等差 ...
- python数组数字求和_python数组求和
Pandas是Python的一个大数据处理模块.Pandas使用一个二维的数据结构DataFrame来表示表格式的数据,相比较于Numpy,Pandas可以存储混合的数据结构,同时使用NaN来表示缺失 ...
- python数字求和_python数字求和
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 对于每个值,我右对齐值的位(忽略0b),计算1的数量,并移动1的数量. #!us ...
- python求平均工资_python实现求和,求平均值——函数
随笔- 51 文章- 0 评论- 2 #求三个数的和 def sum(a,b,c): return a+b+c x = int(input("请输入第一个数:")) y = int ...
- python对矩阵部分求和_python – numpy求和矩阵 – 按索引排
我有3个矩阵(np数组): A是形状(n,m); B的形状为(m,k);和C的形状(n,k) 矩阵C只有集合{-1,0,1}中的值,它是某种类型的"指标":如果C [i,j] == ...
最新文章
- C#“装箱”(boxing)与“拆箱”(unboxing)
- 告别渣画质,视频会议带宽降90%,英伟达公开Maxine服务背后重要技术
- Nginx-06:Nginx配置实例之负载均衡
- Ubuntu 下查看CUDA和cuDNN 版本
- STL源代码分析(ch 1)组态1
- 【PAT乙级】1035 插入与归并 (25 分)
- 如何实现模拟人类视觉注意力的循环神经网络?
- 高斯投影正反算C语言程序代码,高斯投影正反算-对网络上面流行的C代码的修改(已正确运行)...
- [CareerCup] 1.6 Rotate Image 翻转图像
- SAP Spartacus Org Unit List响应回车案件的实现原理
- Perspective Mockups mac(PS透视模型动作插件)支持ps2021
- CCF NOI1011 正方形
- Chrome上网问题解决记录
- 产品设计中不可忽视的意见反馈功能
- python项目目录结构
- 【计算机视觉】exe视频转mp4、采集视频中图片记录、删除ABC看图王等软件
- Word、WPS 文字背景颜色无法去除
- 认识PV/PVC/StorageClass
- 修改迅雷下载中“边下边播”的默认播放器
- 微信公众号怎么变现?