编写程序,从键盘输入x,利用幂级数展开计算sin(x)的近似值,要求某一项绝对值误差小于10^-5。 公式如下:
方法提示:对于类似的数列求和问题,关键是抽象出第i项的通用公式,将推导出的通用第i项累加到sum,直到第i项的绝对值小于1e-5为止。另外,注意奇偶项符号的处理。
输入格式:
输入x。
输出格式:
sin(x)的逼近结果。
输入样例:
在这里给出一组输入。例如:
0.5233
结尾无空行
输出样例:
保留4位小数。例如:
0.4997
结尾无空行
code:
#include<stdio.h>
#include<math.h>
int main()
{
double a;
scanf("%lf",&a);
double zi=a,mu=1;//zi指的是分子 mu指的是分母
double xiang=zi/mu;
double sin=xiang;
int j=1;//统计第几项
for(int i=3;;i+=2)
{
if(fabs(xiang)<1e-5) break;//注意当有一项满足时跳出
j++;
zi=pow(a,i);
mu=i*(i-1)*mu;
xiang=zi/mu;
if(j%2==0)//通过观察可知奇数项为正 偶数项为负
xiang=-xiang;
sin+=xiang;//sin的值
}
printf("%.4lf",sin);
return 0;
}
这篇文章以互相学习为主,有什么错的还望告知,谢谢啦