自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
输入格式:
输入第一行中给出非负整数 n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位。
不懂点:int 强行转double 精度缺失导致n过大时出现错误。???
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
double e=1;
int denominator=1;
double item=1.0;//要用double
for(int i=0;i<n;i++){
item=1;
for(int j=1;j<=denominator;j++){
item*=j;
}
e+=1.0/item;
denominator++;
}
printf("%.8f",e);
return 0;
}