在c++中,计算e=1+1⼀1!+1⼀2!+1⼀3!+。。。+1⼀n!+。。。,知道1⼀n!<=10-7时停止计算。ଠ

2024-12-04 10:48:18
推荐回答(2个)
回答1:

这里是循环条件,也就是说,只有符合 u>1.0e-7 的条件,循环就会继续进行,也就是说,到 u<=1.0e-7的时候,才会终止循环,即停止计算。
也就是说,for的循环条件是:符合这个条件才进入循环,不符合条件就不进入循环。所以要把这个跟终止条件不要搞混了。

回答2:

#include
using namespace std;

double GetE();
double GetE2();
int main(int argc, char** argv)
{
double e = GetE();
cout << e << endl;

e = GetE2();
cout << e << endl;

return 0;
}

double GetE()
{
int n = 1;
int nn = 1;
int N = 10000000;
double e = 1;
while (nn < N)
{
e += (double)1/nn;
++n;
nn *= n;
}

return e;
}

double GetE2()
{
int n = 1;
int nn = 1;
int N = 10000000;
double e = 1;
do
{
e += (double)1/nn;
++n;
nn *= n;
} while (nn < N);

return e;
}
是否可以解决您的问题?