欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

遞歸案例分享

 更新時間:2014年05月19日 15:13:53   作者:  
一般定義:程序調(diào)用自身的編程技巧稱為遞歸( recursion)。

一般定義
程序調(diào)用自身的編程技巧稱為遞歸( recursion)。
一個過程或函數(shù)在其定義或說明中有直接或間接調(diào)用自身的一種方法,它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似的規(guī)模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。
注意:
(1) 遞歸就是在過程或函數(shù)里調(diào)用自身;
(2) 在使用遞歸策略時,必須有一個明確的遞歸結(jié)束條件,稱為遞歸出口。

C#遞歸算法實例:

計算數(shù)組{1,1,2,3,5,8.......} 第30位值,不用遞歸,我寫出了以下這樣的代碼:

復(fù)制代碼 代碼如下:

static void Main(string[] args) 
 ...{ 
int[] num=new int[30]; 
num[0]=1; 
num[1]=1; 
int first=num[0]; 
int second=num[1]; 
for (int i = 2; i < num.Length; i++) 
...{ 
 num[i] = first + second; 
 first = second; 
 second = num[i]; 

Console.WriteLine(num[29]); 
Console.ReadLine(); 
 } 

C#遞歸算法的使用,以下是代碼:

復(fù)制代碼 代碼如下:

static void Main(string[] args) 
 ...{ 

Console.WriteLine(Process1(30)); 
Console.ReadLine();  
 } 
 public static int Process1(int i) 
 ...{ 

//計算數(shù)組{1,1,2,3,5,8.......} 第30位值 
if (i == 0) return 0; 
if (i == 1) return 1; 
else
return Process1(i - 1) + Process1(i - 2); 

復(fù)制代碼 代碼如下:

// 階乘
public class Factorial {
    public static void main(String[] args) {
        System.out.println(factorial(6));
    }
    public static int factorial(int n) {
        // 出口點
        if (1==n) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
}
// 斐波那契數(shù)列
public class Fibonacci {
    public static void main(String[] args) {
        System.out.println(fibonacci(6));
    }
    //  斐波那契數(shù)列:(從第三項開始,后一項都是前兩項的和)
    //  1  1  2  3  5  8  13 ......
    public static int fibonacci(int n) {
        // 出口點
        if (1==n || 2==n) {
            return 1;
        } else {
            return fibonacci(n-1) + fibonacci(n-2);
        }
    }

// 遍歷一個目錄下的所有文件
public class FileList {
    private static List<String> fileNameList = new ArrayList<String>();
    public static void main(String[] args) {
        String dir = "D://360Rec";
        File file = new File(dir);
        addAll(file);
        for (String name : fileNameList) {
            System.out.println(name);
        }
    }
    public static void addAll(File file) {
        // 出口點: 是文件或者是空目錄
        if (file.isFile() || file.list().length==0) {
            fileNameList.add(file.getName());
        } else {
            File [] files = file.listFiles();
            for (File f : files) {
                addAll(f);
                if (f.isDirectory() && f.list().length!=0) {
                    fileNameList.add(f.getName());
                }
            }
        }
    }
}

相關(guān)文章

  • WinForm下 TextBox只允許輸入數(shù)字的小例子

    WinForm下 TextBox只允許輸入數(shù)字的小例子

    WinForm下 TextBox只允許輸入數(shù)字的小例子,需要的朋友可以參考一下
    2013-04-04
  • C#實現(xiàn)數(shù)字轉(zhuǎn)換漢字的示例詳解

    C#實現(xiàn)數(shù)字轉(zhuǎn)換漢字的示例詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)數(shù)字轉(zhuǎn)換漢字功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#?使用PrintDocument類打印標簽的方法

    C#?使用PrintDocument類打印標簽的方法

    本文介紹打印機初步配置,以及實現(xiàn)方法,標簽主要展示資產(chǎn)基本信息以及二維碼,對C#?使用PrintDocument類打印標簽的詳細過程感興趣的朋友一起看看吧
    2022-04-04
  • WinForm IP地址輸入框控件實現(xiàn)

    WinForm IP地址輸入框控件實現(xiàn)

    這篇文章主要為大家詳細介紹了WinForm IP地址輸入框控件的實現(xiàn)代碼,基于VS2010模擬windows系統(tǒng)自帶IP輸入框,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C#中Invoke和BeginInvoke實際應(yīng)用詳解

    C#中Invoke和BeginInvoke實際應(yīng)用詳解

    這篇文章主要給大家介紹了關(guān)于C#中Invoke和BeginInvoke實際應(yīng)用的相關(guān)資料,Invoke是對象方法,BeginInvoke是靜態(tài)方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 在Winform框架界面中改變并存儲界面皮膚樣式的方法

    在Winform框架界面中改變并存儲界面皮膚樣式的方法

    下面小編就為大家分享一篇在Winform框架界面中改變并存儲界面皮膚樣式的方法,具有很好的參考價值,希望對大家有所幫助
    2017-11-11
  • ZooKeeper的安裝及部署教程

    ZooKeeper的安裝及部署教程

    Zookeeper是一個針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護、名字服務(wù)、分布式同步、組服務(wù)等,這篇文章主要介紹了ZooKeeper的安裝及部署,需要的朋友可以參考下
    2019-06-06
  • c#語言程序構(gòu)建基塊

    c#語言程序構(gòu)建基塊

    這篇文章主要介紹了c#語言程序構(gòu)建基塊,關(guān)于c#程序構(gòu)建基塊我們要從成員開始,class?的成員要么是靜態(tài)成員,要么是實例成員。?靜態(tài)成員屬于類,而實例成員則屬于對象,具體內(nèi)容需要的小伙伴可以參考下面文章的詳細內(nèi)容
    2021-12-12
  • Jquery+Ajax+Json+存儲過程實現(xiàn)高效分頁

    Jquery+Ajax+Json+存儲過程實現(xiàn)高效分頁

    這篇文章主要介紹Jquery+Ajax+Json+存儲過程實現(xiàn)分頁,需要的朋友可以參考下
    2015-08-08
  • C#中ExecuteNonQuery()返回值注意點分析

    C#中ExecuteNonQuery()返回值注意點分析

    這篇文章主要介紹了C#中ExecuteNonQuery()返回值注意點分析,對于C#數(shù)據(jù)庫程序設(shè)計有很大的借鑒價值,需要的朋友可以參考下
    2014-08-08

最新評論