自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
输入格式:
输入第一行中给出非负整数 n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位。
输入样例:
10
输出样例:
2.71828180
这道题难度不大,跟前面的序列和一样的想法与思路,唯一不一样的就是各分母是阶乘,就有点卡,但是你想阶乘是小标一直乘到一,我们计算的第一个阶乘与下一个阶乘只是差啦下一项的下标,所以我们把每一项单独提出来,乘以下一项的下标就得到下一项的阶乘。
代码如下:
#include<stdio.h>
int main(){
int n;
double he=1,sum=1;
scanf("%d",&n);
for(int i=1;i<=n;i++){
he=he*1.0/i; //每一项乘以下标,得到下一项的阶乘
sum+=he;
}
printf("%.8f\n",sum);
return 0;
}