[PTA]练习4-7 求e的近似值
[PTA]练习4-7 求e的近似值
题目:
自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
输入格式:输入第一行中给出非负整数 n(≤1000)。
输出格式:在一行中输出部分和的值,保留小数点后八位。
输入样例:10
输出样例:2.71828180
方式一:一般形式,两层循环嵌套
#include<stdio.h>
int main()
{
int n = 0;
double sum = 1;
scanf("%d", &n);
if (n <= 1000)
{
for (int i = 1; i <= n; i++)
{
double fact = 1;//不能定义为全局变量
for (int j = 1; j <= i; j++)
{
fact = fact * j;
}
sum = sum + 1.0 / fact;
}
printf("%.8f\n", sum);
}
return 0;
}
方式二:自定义调用求阶乘函数
#include<stdio.h>
double fact(int x)//求x的阶乘函数,注必须定义为double类型,int类型装不下最大值1000?
{
double fact=1;
for (int j = 1; j <= x; j++)
{
fact = fact * j;
}
return fact;
}
int main()
{
int n = 0;
scanf_s("%d", &n);
double sum = 1;
if (n <= 1000)
{
for (int i = 1; i <= n; i++)
{
sum = sum + 1.0 / fact(i);
}
printf("%.8f\n", sum);
}
return 0;
}