C++给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!)
时间: 2023-11-21 12:04:28 浏览: 178
```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;
```
对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。C++
要计算给定正整数N的S=1!+2!+3!+...+N!的值,我们可以编写一个C++程序,使用循环结构来累加每个阶乘的值。下面是一个可能的实现方法:
```cpp
#include <iostream>
// 函数用于计算阶乘
long long factorial(int n) {
long long fact = 1;
for (int i = 1; i <= n; ++i) {
fact *= i;
}
return fact;
}
int main() {
int N;
std::cout << "请输入一个正整数N: ";
std::cin >> N;
long long S = 0;
for (int i = 1; i <= N; ++i) {
S += factorial(i);
}
std::cout << "S=" << S << std::endl;
return 0;
}
```
这段代码首先定义了一个`factorial`函数,用于计算一个整数的阶乘。然后在`main`函数中,我们读取用户输入的正整数N,通过一个循环结构计算从1到N的所有整数阶乘的和,并输出结果。
阅读全文
相关推荐















