example: 求5的階乘。。
如下:
public class Test {
static int multiply(int n){
if(n==1||n==0)
return n;
else
return n*multiply(n-1);
}
public static void main(String[] args){
System.out.println(multiply(10));
}
}
上面的multiply是一個階乘的例子。其實遞歸遞歸,從字面上解釋就是在方法本身調用自己的方法,或者間接調用;看上面的程序,拿multiply(5)來說:
n=5;執行 5*multiply(4);
--------------------
這時候看multiply(4)
n=4 執行 4*multiply(3);
-------------------
看multiply(3)
n=3,執行 3*multiply(2);
---------------
mulitply(2);
n=2 執行 2*mulitply(1);
這時候,return 1;往上返回
2*1向上返回
3*(2*1)向上返回
4*(3*(2*1)) 向上返回
5*(4*(3*(2*1)) ) = 120
所以程序輸出120;
這事簡單的遞歸的例子;所以可以看出來遞歸的關鍵得有遞歸出口(本體的If語句),還有遞歸方法;