用c语言编写e=1+1/1!+1/2!+1/3!......1/n!,计算e的值。要求:1用for

用c语言编写e=1+1/1!+1/2!+1/3!......1/n!,计算e的值。要求:1用for循环计算到公式的前50项。详细一点解释,不要复制,谢谢

似乎有些难....因为要算到前50项...需要打高精度(阶乘太大已经爆了long long)我的程序只能算一定范围内的...

#include<cstdio>

using namespace std;

int n;
double ans=0;

int main(){
int i;
long long p=1;
scanf("%d",&n); //输入要到多少项 
for(int i=1;i<=n;i++){
p=p*i; //p表示 i!因为每次都乘上 i,所以每次乘起来最后就是i! 
ans+=(double)1/p; //将算的 1/i!累加起来 
}
printf("%.10lf",ans); //保留10位小数输出 
return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答