请以最简单的方式解释递归的工作原理。
答案 0 :(得分:6)
正如已经指出的那样,递归是函数调用自身的时候。此处使用factorial
进行了说明,其中factorial(5)
在数学上重新评估了值5 * 4 * 3 * 2 * 1
。
public int factorial(int x) {
if (x == 1) return 1;
else return x * factorial (x - 1);
}
// Try routine
factorial(3);
评估为
factorial(1) = 1 = 1
factorial(2) = 2 * factoral(1) = 2 * 1
factorial(3) = 3 * (2 * factorial(2) * (factorial(1)) = 3 * 2 * 1
...
答案 1 :(得分:4)
通常,它是自己计算一个结果的函数,并调用自身来获得其余的结果。
例如,为了使所有正数小于或等于3,函数说:“一个结果是3,其余结果都是正数小于或等于2.我们用2调用自己并添加这导致我计算的那个。“
当然,递归函数需要注意具有“结束条件”,否则它们将永远不会返回结果。在这个例子的情况下,结束条件是当函数用0调用时,它应该只返回0。
答案 2 :(得分:1)
递归是一种从内部调用自身的方法。
示例:
public void recur(int x)
recur(10);
end
答案 3 :(得分:1)
以下是递归方法的一个简单示例: -
public int recur(int count) {
if (count < 10) {
return count + recur(count++);
}
return count;
}
System.out.println(recur(0)); // Invoke first time
答案 4 :(得分:1)
递归是函数调用自身的时候:
int factorial(int integer)
{
if (integer == 1)
return 1;
else
return (integer*(factorial(integer-1)));
}