首先,我们需要一个阶乘函数。输入一个整数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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论