标题 计算正弦函数
问题描述 通过幂级数近似计算正弦函数 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
代码实现:
阶乘函数:
int work(int y) {
int ans = 1;
for (register int i = 2; i <= y; i++) {
ans *= i;
}
return ans;
}
#include <stdio.h>
#include <math.h>
int jie(int y) {//实现阶乘
int ans = 1;
for (register int i = 2; i <= y; i++) {
ans *= i;
}
return ans;
}
int main() {
int n, pos = 0;
double ans = 0, x;
scanf("%d %lf", &n, &x);
while (pos < n) {
ans += pow(x, pos * 2 + 1) * pow(-1, pos) / (jie(pos * 2 + 1) * 1.0);//实现题目中所给公式,加减用(-1)的n次方表示
//printf("%.4lf_%d\n", ans, pos);
pos++;
}
printf("%.4lf", ans);
return 0;
}