问题标题: 酷町堂:各位大神,本萌新求解,我会优质采纳,谢谢!🙏🙏🙏(1022 查表e的值)

1
0
已解决
王子耀
王子耀
缔造者
缔造者

1022   查表e的值经验值:1200

题目描述 Description

利用公式e = 1 + 1/1! + 1/2! + 1/3! + … + 1/n! 求e 的值。

输入描述 Input Description

输入只有一行,该行包含一个整数n(2<=n<=15),表示计算e时累加到1/n!。

输出描述 Output Description

输出只有一行,该行包含计算出来的e的值,要求打印小数点后10位。

样例输入 Sample Input

8

样例输出 Sample Output

2.7182787698

怎么错了???????????????????????????????????

#include<iostream>

#include<cstdio>

#include<cmath>

long long jc=1;

int main(){

double a;

int n;

cin>>n;

for(int i=1;i<=n;i++){

jc*=i;

a+=1/jc;

}

cout<<a;

}

啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

王子耀在2020-10-21 20:35:32追加了内容

#include<iostream>

 

#include<cstdio>

 

#include<cmath>

 

long long jc=1;

using namespace std;

 

int main(){

 

long double a;

 

int n;

 

cin>>n;

 

for(int i=1;i<=n;i++){

 

jc*=i;

 

a+=1.0/jc;

 

}

 

cout<<a;

 

}


0
已采纳
沙宸安
沙宸安
高级启示者
高级启示者

1、你好像没加using namespace std;

2、用1.0÷jc

3、double太小了,没法保留10位。

0
0
0
杜文博
杜文博
资深守护
资深守护

#include "stdio.h"
float fun(int n){
float t=1.0;
int i;
for(i=1;i<=n;i++){
t*=i;}
return t;}
void main(){
float e=1.0;
int n=1;
while(1/fun(n)>=10e-6){
e+=1.0/fun(n);
n++;}
printf("%f",e);
}

0
0
沙宸安
沙宸安
高级启示者
高级启示者

另外,开头a要加1,要不然结果会少1.

沙宸安在2020-10-21 20:42:44追加了内容

a要先=1,要不然我编译器干这事:

0
沙宸安
沙宸安
高级启示者
高级启示者

我知道了!

格式化输入输出:printf("%.10f\n",a);

0
王文博
王文博
缔造者之神
缔造者之神

 

  • double e=1;
  • cin>>n;
  • for(int i=1;i<=n;i++)
  • {
  • t*=i;
  • e+=1.0/t;
  • }
  • printf("%.10f",e);

 

0
杜智宸
杜智宸
中级光能
中级光能
    cin>>n;
    for(int i=1;i<=n;i++){
        t*=i;
        e+=1.0/t;
    }
    printf("%.10f",e);

double定义n,t=1,e=1

0
曹砚青
曹砚青
中级光能
中级光能

孩子,你还是忒年轻了,你应该把酷町豆放少一点!

好了,不说废话,开干!

首先,你把

 

 

 

 

望采纳!!!

 

 

再把

改成

再把

改成

 

 

好了

效果图应该是这样:

接着,

0
曹砚青
曹砚青
中级光能
中级光能

孩子,你还是忒年轻了,你应该把酷町豆放少一点!

好了,不说废话,开干!

首先,你把

 

 

 

 

望采纳!!!

 

 

再把

改成

再把

改成

 

 

好了

效果图应该是这样:

接着,

曹砚青在2020-10-24 10:08:41追加了内容

对不起,多发了

0
朱优扬
朱优扬
中级天翼
中级天翼

我的AC代码:

    int n;

    double sum=1;

    long long s;

    int jc(int x){

        s=1;

        for(int i=1;i<=x;i++)

            s=s*I;

        return s;

    }

    int main(){

        输入n;

        遍历1--n

            sum+=1.0/jc(i);

        保留十位小数输出(用printf)

    } 

    PS:这不是整段代码

我要回答