题目
麦克劳林公式计算 e^x的值

输入格式
x ε
注:x 为指数,ε 为计算精度。
输出格式
y
注:y 为 e^x的值。用 %f 格式限定符输出 6 位小数。
样例
输入样例
0.5 0.0000001
输出样例
1.648721
要求:所计算的最后一项的绝对值小于 ε。
代码
#include <math.h>
#include <stdio.h>
int main()
{
int inx = 1;//阶乘基数
double x, e = 1, ep, d = 1, dx, dy = 1;
scanf("%lf%lf", &x, &ep);
dx = x;
while (d > ep) //都是+,没有负值,不需要判断绝对值
{
d = dx / dy;//计算每一项
e += d;//
dy *= ++inx;//计算阶乘
dx *= x;//计算x的次方
}
printf("%.6lf\n", e);
printf("%.6lf\n", exp(x));//与系统函数所求结果进行比较
return 0;
}
运行结果

总结
- 第一项直接给e赋值1
- 从第二项开始循环进行计算
- 循环中的阶乘dy在前一次运算的基础上乘以inx,得到当前项的阶乘,这个方法可以用在很多类似计算中。不需要每次从1开始计算,可以减少运算次数,节省时间。

浙公网安备 33010602011771号