C++给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!)
时间: 2023-11-21 14:04:28 浏览: 180
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0;
int s = 1;
for (int i = 1; i <= n; i++) {
s *= i;
sum += s;
}
cout << sum << endl;
return 0;
}
```
相关问题
蒜术师给了一个正整数 n,让你求出不大于 n 的正整数的阶乘的和(即求 1!+2!+3!+...+n!1!+2!+3!+...+n!)。
给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!)。
以下是代码实现:
```c++
int n;
int sum = 0;
cin >> n;
for (int i=n;i>0;--i){
int x = 1; //存放i阶乘
for(int j=i;j>0;--j){
x*=j;
}
sum+=x;//该操作做了n+n-1+***+3+2+1次
}
cout<<sum<<endl;
```
c++对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。
要计算S=1! 2! 3! … n!的末6位(不含前导0),可以使用以下c代码:
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0;
for(int i=1; i<=n; i++) {
int s = 1;
for(int j=1; j<=i; j++) {
s *= j;
s %= 1000000;
}
sum = (sum + s) % 1000000;
}
printf("%d", sum);
return 0;
}
这段代码使用了两层循环来计算每个数的阶乘,并将阶乘结果累加到sum中。为了避免乘法溢出,我们在每次乘法操作后对结果进行取余操作,保证结果在一个范围内。最后,我们将sum对1000000取余,以得到末6位的结果。
阅读全文
相关推荐















