初学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 阶层求和 学完你也会的主要内容,如果未能解决你的问题,请参考以下文章

初学python算法100例-案例30 计算闰年

初学python算法100例-案例28 逆序输出每位数字

初学python算法100例-案例23 输出菱形

初学python算法100例-案例9 间隔1秒输出结果

初学python算法100例-案例29 判断回文数

初学python算法100例-案例12 求水仙花数 多种不同解法