[問題] 一條演算法問題
計算sin(x)的公式如下:
sin(x)=x-x^3/3! + x^5/5! - x^7/7! + x^9/9! -....
(考慮求值到小數以下第六位)
請問以下程式if(sum<0.000001) return 0; 能過濾掉有整數加六位小數以下的值嗎
例如假如 sum = 2.5678999 這樣好像也不會濾掉 還是會加入吧?
float sin_cal(float x, int exp,int sign)
{
float sum=1.0;
int i;
for( i=1 ; i<exp ; i++)
{
sum = sum * x / i;
}
if(sum<0.000001) return 0;
else
return (sin_cal(x,exp+2,-1*sign) + sign*sum);
}
呼叫時:
sin_cal(1,1,1);//x=1時
sin_cal(0.2,1,1);//x=0.2時
sin_cal(2.1,1,1);//x=2.1時
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.35.169
推
10/01 02:16, , 1F
10/01 02:16, 1F
→
10/01 02:16, , 2F
10/01 02:16, 2F
→
10/01 02:17, , 3F
10/01 02:17, 3F
推
10/01 08:07, , 4F
10/01 08:07, 4F
→
10/01 09:34, , 5F
10/01 09:34, 5F
→
10/01 09:35, , 6F
10/01 09:35, 6F
→
10/01 09:35, , 7F
10/01 09:35, 7F
推
10/01 12:47, , 8F
10/01 12:47, 8F
推
10/01 22:59, , 9F
10/01 22:59, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章