c++ 求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。
时间: 2023-11-24 10:51:27 浏览: 34
以下是两种C++求Sn=1!+2!+3!+4!+5!+…+n!之值的例子:
1.使用嵌套循环计算阶乘和
```c++
#include <iostream>
using namespace std;
int main() {
long long s,n,i,j,p;
s=0;
cin>>n;//从1累加到n
for(i=1;i<=n;i++) {
p=1;
for(j=1;j<=i;j++)
p*=j;
s+=p;
}
cout<<s<<endl;
return 0;
}
```
2.使用单层循环计算阶乘和
```c++
#include<stdio.h>
int main() {
long long sum=0,m=1;
int i,num;
scanf("%d",&num);
for(i=1;i<=num;i++) {
m*=i;
sum+=m;
}
printf("%lld",sum);
return 0;
}
```
相关问题
用c++求Sn=1!+2!+3!+...+n!
好的,以下是使用C++语言计算Sn=1!+2!+3!+...+n!的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n, s = 0, f = 1; // 初始化s为0,f为1
cout << "请输入n的值:";
cin >> n;
for (int i = 1; i <= n; i++) {
f *= i; // 计算i的阶乘,即i!
s += f; // 将i!加入到s中
}
cout << "Sn的值为:" << s << endl;
return 0;
}
```
运行程序,输入n的值,即可得到Sn的值。
在c++中求Sn=1!+2!+3!+……+n!的值
可以使用循环和递归两种方法来求解。
方法一:使用循环
代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0, fac = 1;
for (int i = 1; i <= n; i++) {
fac *= i; // 计算i的阶乘
sum += fac; // 累加阶乘
}
cout << sum << endl;
return 0;
}
```
方法二:使用递归
代码如下:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1); // 递归调用
}
}
int main() {
int n;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += factorial(i); // 累加阶乘
}
cout << sum << endl;
return 0;
}
```
以上两种方法均可以求解Sn=1!+2!+3!+……+n!的值。