题目

麦克劳林公式计算 e^x的值
麦克劳林公式计算 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开始计算,可以减少运算次数,节省时间。
posted on 2022-10-23 12:32  Apull  阅读(33)  评论(0)    收藏  举报  来源