来来来,又是快乐做题的一天。
11.07 泰勒级数展开近似sin(x)的值 (10 分)
编写程序,从键盘输入x,利用幂级数展开计算sin(x)的近似值,要求某一项绝对值误差小于10^-5。 公式如下:
方法提示:对于类似的数列求和问题,关键是抽象出第i项的通用公式,将推导出的通用第i项累加到sum,直到第i项的绝对值小于1e-5为止。另外,注意奇偶项符号的处理。
输入格式:
输入x。
输出格式:
sin(x)的逼近结果。
输入样例:
在这里给出一组输入。例如:
0.5233
输出样例:
保留4位小数。例如:
0.4997
这道题简单归简单,但是真的坑到我了。
#include<stdio.h>
#include<math.h>
int main()
{
double x,i,k=0,l=1,o=0;
int j=0;
scanf("%lf",&x);
for(i=1;i<=9;)
{
o=pow(x,i)/l;
j++;
i+=2;
l*=i*(i-1);
if(j%2==0)
k-=o;
else
k+=o;
}printf("%.4lf",k);
return 0;
}
关于o和l都是后期补上的变量
开始我没有更新o的值直接用x承接,犯了大忌。