学习记录与分享
PTA程序设计类教学平台—Python作业二(循环结构程序设计)
题目
从键盘输入一个整数n,求前n项的阶乘之和,1+2!+3!+…+n!的和
输人样例
20
输出样例
2561327494111820313
代码:
首先了解什么是阶乘:
阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。
通俗的讲也就是按顺序从一乘到n,所得的那个数就是n的阶乘
方法一:
思路:当用户给n赋值后,用for循环让i从1到n过一遍。给一个初始值1,让b从1开始乘到每一个循环的i。再用一个sum统计每一个i的阶乘。当循环结束后sum就统计完1到N的所有阶乘。
n = int(input())
b = 1
sum=0
for i in range(1,n+1):
b = b*i
sum+=b
print(sum)
方法二:
思路:用一个while循环让i从1到n的循环一遍,再用一个循环计算出第i个的阶乘。用sum统计起来。
i = int(input())
sum = 0
if i < 1:
exit()
else:
while i > 0:
b = 2
c = 1
while b <= i:
c = b*c
b = b+1
sum += c
i = i-1
print(sum)
方法三:
思路:定义一个计算阶乘的def函数,再用一个for循环让1-n都调用一次def函数。
def a(n):
ans = 1
for i in range(1,n+1):
ans *= i #等价于ans = ans * 2
return ans
n = int(input())
sum = 0
for i in range(1,n+1):
sum += a(i)
print(sum)
知识点
def函数
- (define的前三个字母)是一个关键字,用来声明函数
格式:def 函数名(参数1,参数2,…,参数n):
for循环:
for i in range(1,10): ‘举例从1-10’
break:跳出整个循环,不会再循环后面的内容
- continue:跳出本次循环,
- continue后面的代码不再执行,但是循环依然继续
exit():结束程序的运行