C++ 按下列公式,求e的近似值。e=1+1/1!+1/2!+1/3!+…+1/n!

如题所述

第1个回答  2018-01-22
#include <iostream>

using namespace std;

float CalcE(int n)
{
    float e = 1.0f; //初始值为1 
    float f = 1.0f;
    for(int i=1; i<=n; ++i)
    {
        f *= i;
        e += 1/f;
    }
    cout<<e<<endl;
}

int main(int argc, char *argv[])
{
    CalcE(10);
    cin.get();
    return 0;
}

第2个回答  2018-01-22
#include <stdio.h>
#include <math.h>
 
int main() {
    double e=1.0f;
    int n, i=1;
    long f=1;
    printf("Input n:");
    scanf("%d", &n);
 
    while (i<=n) {
        e += 1.0/f;
        f*=++i;
    }
    printf("%.10f", e);
}

第3个回答  推荐于2018-01-22
看代码片段
double x = 1, sum = 1;
for(int i = 1; i < 10000; ++i)
{
x /= i;
sum += x;
}本回答被网友采纳
第4个回答  2018-07-11
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int i;
int x;
double sum = 1.0;
int pro;

for(i = 1; i <= n; i++){
for(x = 1, pro = 1; x <= i; x++){
pro *= x;
}
sum += 1.0/pro;
}
printf("%f", sum);

return 0;
}
第5个回答  2018-01-22
#include <iostream>
using namespace std;

int main() {
double d=1;//分母
double j=0;//和
double a=0;//每项的值
int i//循环变量
for(i=1;i<=49;i++)
{j+=a;
a=1/d;
d*=i;}
cout<<"e="<<j<<endl;

return 0;
}
相似回答