求阶乘 求1!+2!+…+20!,其中x!=1*2*…*x,表示阶乘。 输入说明: 输入一个大于3, 小于等于20的整数N 输出说明: 输出从1!+2!+3!+...+N!的和
时间: 2023-11-17 16:00:16 浏览: 132
求阶乘是指将一个正整数n的所有小于等于n的正整数相乘,得到的积即为n的阶乘,用符号n!表示。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。而题目要求的是1!+2!+…+20!,即将1到20的阶乘相加的结果。
以下是两种不同的实现方法:
1. 递归实现:
代码中的RJieCheng函数就是用来计算一个数的阶乘的,而主函数中的for循环则是将1到n的阶乘相加,得到最终结果。
2. 非递归实现:
代码中的两个for循环分别用来计算每个数的阶乘和将所有阶乘相加的结果。
相关问题
求阶乘 求1!+2!+…+20!,其中x!=1*2*…*x,表示阶乘。 输入说明: 输入一个大于3, 小于等于20的整数N 输出说明: 输出从1!+2!+3!+...+N!的和
求阶乘是指将一个正整数n的所有小于等于n的正整数相乘,得到的积就是n的阶乘,用符号n!表示。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。而题目要求的是1!+2!+3!+...+N!的和,即前N个数的阶乘的和。
以下是代码实现:
#include <stdio.h>
long long RJieCheng(int n) {
if (n == 1) {
return 1;
}
return n * RJieCheng(n - 1);
}
int main() {
long long sum = 0;
int x = 0;
printf("请输入一个大于3, 小于等于20的整数N:");
scanf("%d", &x);
for (int i = 1; i <= x; i++) {
sum = sum + RJieCheng(i);
}
printf("1!+2!+3!+...+%d!的和为:%lld\n", x, sum);
return 0;
}
求阶乘 求1!+2!+…+20!,其中x!=1*2*…*x,表示阶乘。 输入说明: 输入一个大于3, 小于等于20的整数N 输出说明: 输出从1!+2!+3!+...+N!的和
以下是两个问题的回答:
1. 求阶乘
```python
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
# 示例
print(fact(5)) # 输出:120
```
2. 求1!+2!+…+20!
```python
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
def sum_of_factorials(n):
sum = 0
for i in range(1, n+1):
sum += fact(i)
return sum
# 示例
print(sum_of_factorials(3)) # 输出:9
```
阅读全文