P1009 [NOIP1998 普及组] 阶乘之和用c++解答
时间: 2023-12-04 20:55:05 浏览: 32
这道题目需要计算1!+2!+3!+...+n!的值,其中n<=12。
我们可以使用循环来计算每一个i的阶乘,然后累加到结果中。具体实现如下:
```c
#include <stdio.h>
int main() {
int n, i, j;
long long fact, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
fact = 1;
for (j = 1; j <= i; j++) {
fact *= j;
}
sum += fact;
}
printf("%lld\n", sum);
return 0;
}
```
这里使用了long long类型来存储阶乘和,因为n<=12时,阶乘和可能会非常大。
相关问题
高精度做P1009 [NOIP1998 普及组] 阶乘之和c++
题目描述:
输入一个整数 n,求1!+2!+3!+...+n!的末6位数字表示的整数。
输入格式:
一个整数n。
输出格式:
一个整数,表示1!+2!+3!+...+n!的末6位数字表示的整数。
输入样例:
5
输出样例:
33
算法1:
暴力枚举。时间复杂度O(n^2)。
C++ 代码
P1009 [NOIP1998 普及组] 阶乘之和
好的,你的问题是关于算法竞赛的题目。这道题目要求计算 $1!+2!+3!+...+n!$ 的值,其中 $n$ 是一个给定的正整数。这里给出一种简单的实现方式:
```python
n = int(input())
ans = 0
fac = 1
for i in range(1, n+1):
fac *= i
ans += fac
print(ans)
```