给定一个正整数n(n≤100),计算1!+2!+3!+……+n!的和值 例如当n=5时,和值为153;当n=10时,和值为4037913
时间: 2023-05-26 19:05:04 浏览: 153
java代码-使用java解决给定一个整数N,编写程序求1!+2!+……+N!的源代码
5星 · 资源好评率100%
解法一:循环累加
根据题目要求,依次计算1!、 2!、 3! …… n!的和值,可以使用循环累加的方法求解。
具体来说,首先定义一个变量 sum 用于记录累加和的结果,而后使用 for 循环依次计算每个阶乘的值,并将计算结果加入到 sum 中。
Python 代码如下:
n = int(input())
sum = 0
factorial = 1
for i in range(1, n + 1):
factorial *= i
sum += factorial
print(sum)
解法二:递归计算
阶乘的计算可以使用递归的方式求解。由于n! = n × (n−1)!,因此在计算n!时可以递归计算 (n−1)! 的值,直到递归终止条件满足为止。
具体来说,如果n等于1,则返回1,否则返回 n × fac(n−1),其中 fac 函数用于求解 n 的阶乘。
而在本题中,需要依次计算1!、 2!、 3! …… n!的和值,可以将阶乘函数进行修改,使其能够计算从1到n的阶乘和。具体来说,在计算 n 的阶乘时,递归计算 (n−1)! 的阶乘和,将计算结果加上n!的值,并返回。
Python 代码如下:
def fac(n):
if n == 1:
return 1
else:
return n * fac(n - 1)
n = int(input())
sum = 0
for i in range(1, n + 1):
sum += fac(i)
print(sum)
阅读全文