似乎有些难....因为要算到前50项...需要打高精度(阶乘太大已经爆了long long)我的程序只能算一定范围内的...
#include
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;
}