初学python算法100例-案例25 阶层求和 学完你也会
Posted 技术专家团-小兔子编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学python算法100例-案例25 阶层求和 学完你也会相关的知识,希望对你有一定的参考价值。
题目:阶层求和
求1+2!+3!+...+n!的和,你由键盘输入
解法1 常规思维
程序分析
1、先求出每一项的值
2、最后进行求和
代码编写
n = int(input("请输入一个数:"))
s = 0
t = 1
for i in range(1,n+1):
t *= i
s += t
print ('1! + 2! + 3! + ... + %d! = %d' % (n,s))
运行结果
请输入一个数:5
1! + 2! + 3! + ... + 5! = 153
解法2 递归
程序分析
1、定义一个求阶层递归函数
2、调用该函数实现求和
代码编写
#递归函数阶层
def fac(x):
if x == 1:
return 1
return x * fac(x-1)
#调用递归
n = int(input("请输入一个数:"))
s = 0
for i in range(1,n+1):
s += fac(i)
print ('1! + 2! + 3! + ... + %d! = %d' % (n,s))
运行结果
请输入一个数:6
1! + 2! + 3! + ... + 6! = 873
解法3 列表
程序分析
1、将每一个阶层加入列表
2、通过列表求和公式的到和值
代码编写
n = int(input("请输入一个数:"))
s = 1
t = []
for i in range(1,n+1):
s *= i
t.append(s)
print ('1! + 2! + 3! + ... + %d! = %d' % (n,sum(t)))
运行结果
请输入一个数:9
1! + 2! + 3! + ... + 9! = 409113
还有更多其他的解法,欢迎一起交流学习
以上是关于初学python算法100例-案例25 阶层求和 学完你也会的主要内容,如果未能解决你的问题,请参考以下文章