我用for循环迭代地解决了一个问题。我想将代码转换为使用递归的if-else语句的递归算法。我试过好几次,但都没能正常工作。
double A;
int B;
double previous=1;
double answer;
double equation(double A,int B){
for(int i=1; i<=B; i++){
answer= (A*previous)/(i+A*previous);
previous = answer;
};
return answer;
}
编辑:以下是我迄今为止所做的工作:http://pastebin.com/raw.php?i=kyeq1v5u
最佳答案
有一个公式。它是一个递归公式。它递归地定义了你的问题
equation(A, B) =
IF(B = 1)
A/(1+A)
ELSE
(A*equation(B-1)) / (B+A*equation(B-1))
编辑:psudo代码中有您的完整算法。你所要做的就是翻译成c。祝你好运。
提示:
previous
等于equation(A, B-1)
关于c - 如何将迭代算法转换为递归解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11454105/