自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
输入格式:
输入第一行中给出非负整数 n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位。
输入样例:
10
输出样例:
2.71828180
# include <stdio.h>
double daojiecheng(int n);
int main()
{
int n,i=1;
double e=1.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
e+=daojiecheng(i);
printf("%.8lf",e);
return 0;
}
double daojiecheng(int n)
{
int i=1;
double ret=1.0;
for( i=1;i<=n;i++)
ret*=1.0/i;
return ret;
}
看似经典的泰勒级数求e很简单,但是做的时候就会经常报错(因为你和我一样没有想起int的范围要比double小很多,而阶乘是很大的数字,很容易就超出int的范围),所以注意这一点就好啦