自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。本题要求对给定的非负整数n,求该级数的前n项和。
输入格式:
输入第一行中给出非负整数n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位。
输入样例:
10
输出样例:
2.71828180
一开始用的是unsigned long int 后来发现阶乘到16时候溢出,改成double才成功
#include <stdio.h>
int main (){
int n,i;
double sum ,factorial;
sum = factorial = 1.0;
scanf("%d",&n);
for( i=1; i<=n ; i++){
factorial *= i;
sum += 1/factorial;
// printf("i=%d\tf=%f\tsum=%f\n",i,factorial,sum);
}
printf("%.8f",sum);
return 0 ;
}