我在写一个必须递归的正弦函数。我已经写了一个正弦函数,但我不确定如何递归地执行它。有人可以解释如何开始呢?递归正弦函数
这是我到目前为止有:
/*--------------------------------------------------------------
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)
并且围绕当前代码进行了更改以适应该问题。
这功课吗?因为那样我宁愿给你一个提示而不是一个完整的答案,并为你破坏乐趣。 – Mads 2012-04-26 21:01:34
@它有一个家庭作业标签....也许刚刚添加? – kenny 2012-04-26 21:02:22
你有没有试过Google?似乎有很多例子 – 2012-04-26 21:02:29