根据题目带通项即可,注意数据类型!!所有参与最后结果的变量都要变成浮点型,不然会损失精度,公式不要带错了!!!
#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)
?