自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
输入格式:
输入第一行中给出非负整数 n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位
#include
int jiecheng(int x);
int main()
{
int i=1,n;
long double e = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
e += 1.0 / jiecheng(i);
}
printf("%.8Lf", e);
return 0;
}
int jiecheng(int x)
{
int i;
long long int jiechengjieguo = 1;
for (i = 1; i <= x; ++i)
{
jiechengjieguo *= i;
}
return jiechengjieguo;
}
最大n
答案错误
这样写为什么错了啊
阶乘别用long long返回,应该用double
n<1000,long long根本存不下,溢出了
而且到了1000的阶乘这种级别,作为分母,已经无限趋近于0了,后面的有效数字没有任何意义,你一定要搞定指数,指数千万别搞错
只要求精确到8位有效数字,double足够了,不需要long double