我正在编写一个正弦函数,需要使用递归。我已经编写了一个正弦函数,但不确定如何使用递归来实现。有人可以解释一下如何开始吗?
这是我目前的代码:
这是我目前的代码:
/*--------------------------------------------------------------
Name: sine( double X );
Return: Function "sine" will return the
sine of X, where X is measured in radians.
--------------------------------------------------------------*/
double sine(double X)
{
double result = 0;
double term;
int k;
double lim;
k = 0;
lim = power(10, -8);
term = power(-1, k)*power(X, ((2*k) + 1)) / (factorial((2*k)+1));
result = term;
while (absolute(term) > lim)
{
k += 1;
term = power(-1, k)*power(X, ((2*k) + 1)) / (factorial((2*k)+1));
result += term;
}
return result;
}
编辑:我使用包装函数解决了这个问题。基本上创建了另一个函数称为
double sine_rec(double X, double k)
并且改变了当前的代码以适应此需求。