Python,求前n个自然数阶乘之和,输入一个乘整数6,和等于873
import math
a=0
n = int(input())
for i in range(1,n+1):
a+=math.factorial(i)
print(a)
用两个for循环来遍历,第一个for循环遍历1到n之间所有的数,第二for循环遍历1到当前数之间所有的数,以求当前数的阶乘,然后把所有的数阶乘累加到和中,最后打印这个和即可。
代码如下:
n=int(input("请输入一个自然数:"))
sum=0 # 存储n个自然数阶乘的和
for i in range(1,n+1): # 遍历 1到n 之间的每一个数
single=1 # 存储当前自然数的阶乘,初始为1
for j in range(1,i+1): # 遍历1到当前自然数 i之间的每一个数,
single*=j # 把每一个数累乘,以求当前数的阶乘
sum+= single # 累加每个数的阶乘,以求得1到n之间所有数的阶乘之和
# 打印结果
print(sum)
思路:计算每个数的阶乘,再把和相加;
下面代码是c++实现的,两种方法
int CalculateFactorial(int n)
{
auto sum=0;
for(auto i=1;i<=n;i++)
{
auto Fa=1;
for(auto j=1;j<=i;j++)//每个数的阶乘
{
Fa*=j;
}
sum+=Fa;//阶乘之和
}
return sum;
}
//递归法
int Calculate(int n)
{
if (n <= 0) return 0;
auto Fa = 1;
for (auto j = 1; j <= n; j++)//每个数的阶乘
{
Fa *= j;
}
return Fa+Calculate(--n);
}