标题
计算正弦函数
问题描述
通过幂级数近似计算正弦函数 sin(x)= x - (x3 /3!) + (x5 /5!) - (x7 /7!) + (x9 /9!) -......,
其中每一 项的分母为阶乘。要求输入求和的总项数 n (n<20)和变量 x 的值( |x|<1.0 ),
输出结果保留 小数点后四位。
输入说明
输入数据只有一行,包括一个正整数n(n<20)和一个实数x( |x|<1.0 )。n表示级数的总项 数,x表示变量。
输出说明
输出幂级数的和,是一个实数,输出格式中保留小数点后四位。
输入样例
2 0.5
输出样例
0.4792
#include<stdio.h>
#include<math.h>
int main(){
int n,i,j;
double x,sin=0.0,a=1.0;
scanf("%d",&n);
scanf("%lf",&x);
if(n>0&&n<20&&x>-1.0&&x<1.0){
for(i=1;i<=n;i++){
for(j=1;j<=2*i-1;j++){
a*=(double)j;
}
sin+=pow(x,2.0*i-1.0)*pow(-1.0,i+1.0)/a;
a=1.0;
}
printf("%.4f",sin);
}
return 0;
}