6-8 使用函数求余弦函数的近似值 (15 分)

在这里插入图片描述
在这里插入图片描述

/**
写一个方法解析,便于以后的理解
这个题跟其他的循环题最大的不同就是在循环变量的同时还有一个求阶乘的要求,所以要在一个函数中完成看似要两个函数完成的要求
那么只需要在while中写一个求阶乘的方法就可以了
初始化的值都是第二次要用到的值,也就是默认第一项执行过的值为初始值
之后在变量的求值和变化中要注意顺序
这题就是先变化分母,因为分母要通过阶乘来求得,其中要写一个for循环,写前面可以让程序看起来好看一点
再求分子
再求某一项的值
再求sum,在求sum中乘上正负符号变量
因为分母每一次要加2然后求阶乘
所以用一个变量m来表示分母的数字
再把分母变1,避免每一次都在上一次的基础上再求阶乘的错误结果
因为分子的幂次变化和分母的阶数变化是相同的,所以m的变化同时让分子和分母都做出了变化
最后改变一下正负符号
像这样的题都是由套路的,把一个彻底搞清楚之后其他的就都清楚了
/*

    
double funcos(double e, double x)
{
    
    
    int flag = -1;
    double temp = 1;
    double fz = 1;
    double fm = 1;
    double m = 2;
    double sum = 1;
    while(temp > e)
    {
    
    
        for(int i = 1; i <= m; i++)
        {
    
    
            fm *= i;
        }
        fz = pow(x,m);
        temp = fz / fm;
        sum += flag * temp;
        m += 2;
        fm = 1;
        flag = - flag;
    }
    return sum;
}

猜你喜欢

转载自blog.csdn.net/ahahayaa/article/details/121585393
今日推荐