首先,我们需要一个阶乘函数。输入一个整数x,能返回x的阶乘。
阶乘怎么搞?第一个想到的方法自然是递归。
def 阶乘(x):
if x==1:
return 1
return x*阶乘(x-1)
嗯,python是可以使用中文作为变量名的。这你不会不知道吧?
当然,实际上不需要递归,只需要使用i循环区间(1,x+1)求可以求乘积就行了。
def 阶乘(x):
乘积=1
for i in range(1,x+1):
乘积*=i
return 乘积
有了阶乘函数,我们接下来就要求和。我们首先想到的是循环:
n=int(input())
和=0
for i in range(1,n+1):
和+=阶乘(i)
print(和)
当然,因为求和的过程与求阶乘相似。所以我们自然也想到了递归求和的方法:
def 阶乘之和(n):
if n==1:
return 1
return 阶乘(n)+阶乘之和(n-1)
n=int(input())
print(阶乘之和(n))
对于求和与求阶乘的步骤,都是既能够使用递归又能够使用循环。
递归的代码简单、直观,但是消耗更多内存,运行起来慢。循环的代码较为繁琐,但运行速度快。两者各有优劣
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复