递归调用是调用自身的函数,并传给自身的相应的参数,这一运算过程是一层层的进行的,直到满足一定条件时,才停止调用。
递归函数的特点
1.函数要直接或间接调用自身。
2.要有递归终止条件检查,即递归终止的条件被满足后,则不再调用自身函数。
3.如果不满足递归终止的条件,则调用涉及递归调用的表达式。在调用函数自身时,有关终止条件的参数要发生变化,而且需向递归终止的方向变化。
举例:
计算5的阶乘?
public class TestWudejiecheng { public static void main(String arg[]) { System.out.println(f(5)); } //递归函数 public static int f(int n) { if(n==1)//终止条件 { return 1; } else { return n*f(n-1); } } }
从上面的例子中可以进一步看出递归调用的特点,调用自身函数、有终止条件。同时也能从实例中看到递归算法的优点结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。