输入n,求1!+2!+3!+4!+…+n!单循环实现C++
时间: 2023-11-20 16:06:18 浏览: 30
以下是单循环实现输入n,求1!+2!+3!+4!+…+n!的C++代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
int sum = 0;
int m = 1;
cout << "请输入n的值:";
cin >> n;
for (int i = 1; i <= n; i++) {
m *= i;
sum += m;
}
cout << "1!+2!+3!+4!+…+n!的和为:" << sum << endl;
return 0;
}
```
相关问题
用c++写,e=1+1/1!+1/2!+1/3!+1/4!+1/5!+⋯+1/n!+⋯ 试编写程序,对输入一个正整数n,计算列式的和(保留10位小数),要求使用单循环结构。
好的,这是一个数学问题,可以直接回答。以下是使用C语言编写的程序:
```c
#include <stdio.h>
int main() {
int n;
double e = 1.0, factorial = 1.0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
factorial *= i;
e += 1.0 / factorial;
}
printf("%.10f\n", e);
return 0;
}
```
当输入一个正整数n时,程序会计算列式的和,并输出结果,保留10位小数。
c++实现:输入一个正整数n,计算1+1/(1+2)+1/(1+2+3)+·· · ·+1/(1+2+3+··· · ·+n)的值(2 < n < 1000, 结果保留两位小数)。
#include<stdio.h>
int main(){
int n,i,j,k; //i表示要求的这个数列的分母,j就是分子,k表示分母每个位置上的值
double sum=0; //sum表示结果
scanf("%d",&n);
for(i=1;i<=n;i++){
k=1; //初始化,每行都从1开始,当然如果单独算1/1也是1
for(j=1;j<=i;j++){
k*=j;
}
sum+=(double)1/k; //一次循环就是一项,直接累加
}
printf("%.2lf",sum); //保留两位小数
return 0;
}