首先,我们需要一个阶乘函数。输入一个整数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 人评分
转化为字符数组浏览:802 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:552 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:552 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:665 |
1013题解浏览:552 |
A+B for Input-Output Practice (V) (C语言代码)浏览:459 |
循环入门练习6 (C语言代码)浏览:953 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:595 |
简单的a+b (C语言代码)浏览:547 |
C语言程序设计教程(第三版)课后习题8.2 (C++代码)浏览:646 |