利用泰勒级数sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9)! ... (循环的循环体,10^(-5)的表达,次方不仅可以用pow还可以用循环的方式)

利用泰勒级数sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9)! … 计算sin(x) 的值。要求最后一项的绝对值小于10^(-5),并统计出此时累加了多少项。

#include  <math.h>
#include  <stdio.h>
 
void main()
{
    int n = 1,count = 1;
    float x;
    double sum , term;
 
    printf("Input x: ");
    scanf("%f", &x);
 
    sum = x;
    term = x;
    do
    {
         //从第二项开始的也这是
        term = -term*x*x/((n+1)*(n+2));//每一项的项数,有规律的,每一项与前一项的区别
        sum = sum + term;//求和
        n+=2;
        count++;//数数
    }while (fabs(term) >= 1e-5);
    printf("sin(x) = %f, count = %d\n", sum, count);

}

思路:
1 · x3 / 3! x5 / 5! pow(x,3)==》后来并没有用到,循环也可以解决次方问题
2 · 1 3 5 7.。。。。。2i-1
注意:
在这个代码里,我发现了怎么表达
**10^(-5)***这个数了,不光可以用pow函数来表示
另外,这种***循环***的思路不错。

发布了18 篇原创文章 · 获赞 0 · 访问量 196

猜你喜欢

转载自blog.csdn.net/weixin_46456339/article/details/105310268