跟晶振作斗争 2021-10-23 19:06 采纳率: 81.8%
浏览 210
已结题

用泰勒公式计算sinx并统计项数

3.11计算sinx的值

题目描述:
利用泰勒级数 sinx=x-x^3/3!+x^5/5!-x^7/7!+…… 计算sinx的值。要求最后一项的绝对值小于1e-5,并统计出此时累加的项数。

输入描述:
一个实数x(一个角度的弧度数)

输出描述:
sinx的值和累加的项数。

样式输入:
1.57

样式输出:
sinx=1.000000,n=6

#include<stdio.h>
#include<math.h>
double f(double x,double i)
{
return pow(x,i);
}
int main()
{
int n=0,i=1,k=1,j=1;
double sinx=0,t,x;
scanf("%lf",&x);
do
{
for(j=1;j<=i;j++)
{
k=k*j;
}
t=f(-1,n)*f(x,i)/k;
sinx=sinx+t;
i=i+2;
n++;
}while(fabs(t)>=(1e-5));
printf("sinx=%6lf,n=%d",sinx,n);
return 0;
}

能帮忙改一下代码吗 运行结果跟样式输出不一样

  • 写回答

2条回答 默认 最新

  • 接着奏乐吧 2021-10-25 16:38
    关注

    你这样获取K值得效率太低了,这样写 k=k*(i)*(i-1);

    do
    {
    if(i!=1){
    k=k*(i)*(i-1);
    }

    t=f(-1,n)*f(x,i)/k;
    sinx=sinx+t;
    i=i+2;
    n++;
    }while(fabs(t)>=(1e-5));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月13日
  • 已采纳回答 3月13日
  • 创建了问题 10月23日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测