用C++编写:e=1+1/1!+1/2!+1/3!....+1/n!,求e
时间: 2023-08-26 12:05:22 浏览: 76
可以使用循环和递归两种方法来求解e,下面提供一种使用循环的方法:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
double e = 1, factor = 1;
cout << "请输入n的值: ";
cin >> n;
for (int i = 1; i <= n; i++) {
factor *= i;
e += 1 / factor;
}
cout << "e的值为:" << e << endl;
return 0;
}
```
在上面的代码中,首先读入n的值,然后使用for循环计算每一项的值,最后求和得到e的值。注意,在计算每一项的时候,需要用一个变量factor来存储当前项的分母。
相关问题
用c++语言:编写程序求无理数e的值并输出。计算公式为:e=1+1/1!+1/2!+1/3!+......+1/n! (1)用for循环,计算前30项。(2)用while循环,要求直至最后一项的值小于10-6
以下是使用C++编写的程序,分别使用for循环和while循环计算e的值:
使用for循环计算e的值:
```c++
#include <iostream>
using namespace std;
int main()
{
int n = 30;
double e = 1.0, factorial = 1.0;
for(int i = 1; i <= n; i++)
{
factorial *= i;
e += 1.0 / factorial;
}
cout << "e = " << e << endl;
return 0;
}
```
使用while循环计算e的值:
```c++
#include <iostream>
using namespace std;
int main()
{
int n = 1;
double e = 1.0, factorial = 1.0, term = 1.0;
while(term >= 1e-6)
{
factorial *= n;
term = 1.0 / factorial;
e += term;
n++;
}
cout << "e = " << e << endl;
return 0;
}
```
在以上代码中,我们使用了一个变量n来控制循环次数,同时使用一个变量factorial来计算阶乘,一个变量term来记录每一项的值。在for循环中,我们计算了前30项的和,而在while循环中,我们一直循环直到最后一项的值小于10的负6次方。
用Microsoft visual C++编写程序,求e的值e=1+1/1!+1/2!+1/3!+1/4!+…+1/n!
#include<iostream>
using namespace std;
int main()
{
double e=1,fact=1; //初始化e和阶乘为1
int n;
cout<<"请输入n:";
cin>>n;
for(int i=1;i<=n;i++)
{
fact*=i; //求i的阶乘
e+=1/fact; //累加e的值
}
cout<<"e的值为:"<<e<<endl;
return 0;
}