免檒 2023-11-29 21:24 采纳率: 87.5%
浏览 1
已结题

关于余弦函数的约等计算

下面是一个余弦函数的大致计算程序:但是仍然有两个测试点无法通过,不知道是为什么啊?

img

double fact(int n)
{
    int i;
    double a=1;
    for (i=1;i<=n;i++)
    {
        a*=i;
    }
    return a;
}

double MyCos(double x,double epsilon)
{
    int i;
    int flag=-1;
    double sum=0;
    for (i=2;;i+=2)
    {
        if (pow(x,i)/fact(i)<epsilon)
            return sum+1.0;
        else
            sum+=flag*pow(x,i)/fact(i);
            flag=-flag;
    }
}

  • 写回答

3条回答 默认 最新

  • 柯本 2023-11-29 22:13
    关注

    这个是算法问题(我以前遇过),当-40>=x>=40时,算法的结果就会不对了
    试试在程序中加

        double sum=0; //原程序
        while(x>2*M_PI)  //增加
          x-=2*M_PI;//增加
        for (i=2;;i+=2) //原程序
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月8日
  • 已采纳回答 11月30日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗