一.题目
二.分析与思路
根据题目带通项即可,注意数据类型!!所有参与最后结果的变量都要变成浮点型,不然会损失精度,公式不要带错了!!!
三.代码实现
#include<bits/stdc++.h>//万能头
double f(int n){int ans1=1;for(int i=1;i<=n;i++){ans1*=i;}double ans2=ans1*1.0;return ans2;
}//计算阶乘(浮点型)
int main()
{int n;double x;scanf("%d%lf",&n,&x);double ans=0;for(int i=1;i<=n;i++){if(i%2!=0){ans+=pow(x,2*i-1)/f(2*i-1);}else{ans-=pow(x,2*i-1)/f(2*i-1);}}//带公式printf("%.4lf",ans);//精度return 0;
}
四.评价
#include<bits/stdc++.h>//万能头
int main()
{int n;double x;scanf("%d%lf",&n,&x);double ans=sin(x);printf("%.4lf",ans);//精度return 0;
}
因为C库是有sin函数的(doge),但是精度太高了,所以答案是对的,但是过不了(qaq)