已知sinx的近似計算公式如下:
sin x = x - x3/3! + x5/5! - x7/7! + ... + (-1)n-1x2n-1/(2n-1)!
其中x為弧度,n為正整數。撰寫程式根據用戶輸入的x和n的值,利用上述近似計算公式計算sinx的近似值,要求輸出結果小數點后保留8位。
【輸入形式】
從控制臺輸入小數x(0<=x<=20)和整數n(1<=n<=5000),兩數中間用空格分隔。
【輸出形式】
控制臺輸出公式結果:小數點后保留8位。
【樣例輸入1】
0.5236 4
【樣例輸出1】
0.50000105
【樣例輸入2】
0.5236 50
【樣例輸出2】
0.50000106
【樣例說明】
輸入x為0.5236,n為4,求得sinx近似計算公式的值為0.50000105,小數點后保留8位;同樣,輸入x為0.5236,n為50,求得sinx近似計算公式的值為0.50000106,小數點后保留8位。
注意:為保證資料的準確性和一致性,請使用double資料型別保存計算結果。
uj5u.com熱心網友回復:
供參考:#include<stdio.h>
#include<math.h>
double fac(int n);
double sinx(double radian,int n);
int main(int argc, char* argv[])
{
double radian;
int n;
scanf("%lf %d",&radian,&n);
printf("%.8f\n",sinx(radian,n));
return 0;
}
double fac(int n)
{
double num=1;
for(int j=1;j<=n;j++)
num = num * j;
return num;
}
double sinx(double radian,int n)
{
double x=radian;
int i=2,k=0,j=1;
double temp,result=0.0;
do{
k=2*j-1;
temp=pow(-1,i)*pow(x,k)/fac(k);
result=result+temp;
i++;
j++;
}while(j<=n);
return result;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/273379.html
標籤:新手樂園
上一篇:c++頭檔案缺失
下一篇:奇怪的 java.net.ConnectException: Connection refused: connect 報錯
