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

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

#include<stdio.h>
#include<math.h>
#define M 0.000001

void main()
{
    int x,i,k,m=-1;;
    double j=1, result=0;

    printf("x= ");
    scanf("%d",&x);

    for(i=1;fabs(j)>=M;i+=2)
    {   
        //此处必须归为1,要不然就会带着上一个阶乘的值计算
        j = 1;

        //控制多项式符号的
        m=-m;
        //这是算阶乘的
        for(k=1;k<=i;k++)
        {
            j*= k;  
        }
        //这是测试阶乘是否正确的
        printf("j=%lf\n",j);

        //这是计算单个多项式的结果的
        j = m*pow(x,i)/j;
    //  printf("-1==%ld\t\tx^=%ld",pow(-1,i+1),pow(x,i));

        //累加多个多项式
        result += j;
    //  printf("result=%lf\n",result);
    }

    printf("sin(x)= %lf\n",result);

    //测试结果的,调用的 sin(x)函数
    printf("%lf",sin(x));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值