69,336
社区成员
发帖
与我相关
我的任务
分享
// cos
float fun_cos(float x, int m)
{
float ret_val;
int i;
if (m%2 == 0)
{
ret_val = 1.0;
}else
{
ret_val = -1.0;
}
for (i=1;i<=2*m;i++)
{
ret_val = ret_val * x/i;
}
return ret_val;
}
float cosx(float x)
{
float ret_val = 1.0;
float temp_ret;
int m = 1;
float Pi = 3.1415926;
if (x > 2*Pi || x < -2*Pi)
{
x = x-((int)(x/(2*Pi)))*(2*Pi);
}
do
{
temp_ret = fun_cos(x,m++);
ret_val += temp_ret;
} while (temp_ret>0.00005 || temp_ret<-0.00005);
return ret_val;
}
int main() {
for (double i = 0; i < 1; i += 0.01)
{
printf("%lf\n", cosx(i));
}
return 0;
}
// sin
float fun_sinx(float x, int m)
{
float ret = 0.0;
int i = 0;
if (m%2 == 0)
{
ret = -1.0;
}else
{
ret = 1.0;
}
for (i=1;i<=2*m-1;i++)
{
ret = ret * x/i;
}
return ret;
}
float sinx(float x)
{
int m = 1;
float tempRet;
float retVal = 0.0;
float Pi = 3.1415926;
if (x > 2*Pi || x < -2*Pi)
{
x -=((int)(x/(2*Pi)))*(2*Pi);
}
do
{
tempRet = fun_sinx(x,m);
retVal += tempRet;
m++;
} while (tempRet<-.0000005||tempRet>0.0000005);
return retVal;
}
int main() {
for (double i = 0; i < 1; i += 0.01)
{
printf("%lf\n", sinx(i));
}
return 0;
}