三角函數之ㄧ的正弦函數sin(x)可以用下列的泰勒級數算出。

sin(x)=x/1! -x3/3!+x5/5!-x7/7!......

注意公式中x是以弧度表示,例如角度a=90度的直角,轉換為弧度後將變成:
x= a /180 * pi= 0.5pi    (pi於程式中可採用近似值3.1415926)
上列級數請於符合 |xN|/N! ≤ 0.01 條件時停止(注意: |xN|/N! 應併入級數總和中)。 

輸入說明 :

第一行讀入一個-900到900間的實數,代表角度a。

輸出說明 :

多筆測試資料
第一行輸出符合|xN|/N! ≤ 0.01的最小N值。
二行輸出計算所得的sin(x)(小數點後至少六位,後一位四捨五入)。

範例輸入 :

90
-30

 

範例輸出 :

N = 7
0.999843
N = 5
-0.500002

#include<stdio.h>
#include<stdlib.h>
#define pi 3.1415926


main()
{
 int c=1/*N*/,d=0,e=1/*N階層*/,f=1/*正負*/;
 float a/*角度*/,x/*弳度量*/,b=1/*X的N方*/,g=1,total=0,k;
 scanf("%f",&a);
 
 
 
 x=a/180*pi;

for(;!(k<0.01);c+=2)
{
   for(d=1;d<=c;d++)
    b=b*x;      

       
    for(d=c;d>=1;d--)
    e=e*d;           

  
   g=(float)b/e; 


   if(g<0)
   k=g*-1;
   else
   k=g;
   
    if(f%2==1)
    total=total+g; 
    else
total=total-g; 

    
   
f++;   
b=1;
e=1;   

  
}  
printf("%d\n",c-2);
printf("%f",total);     
     
     
     
     
system("pause");     
}

相关文章