九九热这里直有精品,1区二区三区在线播放,玖玖爱在线观看资源,国产aⅴ综合网,午夜福利男女,日本亚洲欧美三级,日韩无码黄色导航,内射少妇13区,中文字幕高清网

您身邊的軟件定制專家--9年開發(fā)經(jīng)驗為您護航

18678812288
0531-88887250

Java中的遞歸原理分析

文章作者:濟南軟件開發(fā) 時間:2016年11月07日

解釋:程序調(diào)用自身的編程技巧叫做遞歸。

程序調(diào)用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種算法在程序設計語言中廣泛應用。 一個過程或函數(shù)在其定義或說明中有直接或間接調(diào)用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規(guī)模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。

 

遞歸的三個條件:
 

邊界條件

遞歸前進段

遞歸返回段

當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。

 

下面通過兩個示例程序來說明:

使用Java代碼求5的階乘。(5的階乘=5*4*3*2*1)

 

[java]  

package org.wxp.recursion;  

  

/** 

 * 計算5的階乘(result = 5*4*3*2*1) 

 * @author Champion.Wong 

 *  

 * 

 */  

public class Test01 {  

    public static void main(String[] args) {  

        System.out.println(f(5));  

    }  

      

    public static int f(int n) {  

        if (1 == n)   

            return 1;  

        else   

            return n*(n-1);  

    }  

}  

Java中的遞歸原理分析

 

 

此題中,按照遞歸的三個條件來分析:

(1)邊界條件:階乘,乘到最后一個數(shù),即1的時候,返回1,程序執(zhí)行到底;

(2)遞歸前進段:當前的參數(shù)不等于1的時候,繼續(xù)調(diào)用自身;

(3)遞歸返回段:從最大的數(shù)開始乘,如果當前參數(shù)是5,那么就是5*4,即5*(5-1),即n*(n-1)

 

使用Java代碼求數(shù)列:1,1,2,3,5,8......第40位的數(shù)

[java]  

package org.wxp.recursion;  

  

/** 

 * 求數(shù)列:1,1,2,3,5,8......第40位的數(shù) 

 * @author Champion.Wong 

 *  

 */  

public class Test_02_Fibonacci {  

    public static void main(String[] args) {  

        System.out.println(f(6));  

    }  

      

    public static int f(int n ) {  

        if (1== n || 2 == n)   

            return 1;  

        else  

            return f(n-1) + f(n-2);  

    }  

}  

 

心得:有些初學者可能認為遞歸即是自己調(diào)用自己,那豈不是死循環(huán)了。對,如果遞歸寫的不合理,那就是死循環(huán)了。但是如果寫的合理,加上“邊界條件”,程序執(zhí)行到底的時候,會逐層返回。就像我們爬山一樣,我們繞著山路爬上一層又一層,如果沒有山頂,我們會一直往上爬。但如果到了山頂,就按照上山時候的步驟一層一層的往下爬。



想要了解更多詳情歡迎來電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。

隆子县| 宣汉县| 内江市| 新安县| 清徐县| 聂荣县| 沙田区| 黄大仙区| 柳河县| 遂溪县| 石门县| 衡山县| 兴业县| 余姚市| 安图县| 凯里市| 团风县| 额济纳旗| 敦煌市| 东兰县| 庆安县| 雅安市| 博客| 漳州市| 合山市| 黄龙县| 海淀区| 桐乡市| 唐河县| 内江市| 丘北县| 刚察县| 合水县| 昂仁县| 革吉县| 揭阳市| 通河县| 江北区| 湘潭市| 长阳| 老河口市|