C++是如何计算sin(x)的呢?其实使用泰勒展开来算的。下面不直接调用sin(x)来写一下程序:
程序
#include
using namespace std;
constexpr double pi = 3.1415926535897932384625;
double ret = 1;
long double _fac(long double num1)
{
ret /= num1;
if (num1 == 1)
return ret;
else return _fac(num1 - 1);
}
double my_sin(double num)
{
while (num > pi)
num -= pi;
while (num < -pi)
num += pi;
double ret = 0;
double sign = 1;
for (double i = 1; i <= 99; i += 2)
{
ret += sign * pow(num, i) * _fac(i);
sign = -sign;
::ret = 1; // call the global ret
}
return ret;
}
int main()
{
double n;
cin >