最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java遞歸實(shí)現(xiàn)斐波那契數(shù)列

 更新時間:2018年02月07日 09:30:20   作者:王立平的博客  
這篇文章主要為大家詳細(xì)介紹了Java遞歸實(shí)現(xiàn)斐波那契數(shù)列,具有一定的參考價值,感興趣的小伙伴們可以參考一下

程序調(diào)用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種算法在程序設(shè)計語言中廣泛應(yīng)用。 一個過程或函數(shù)在其定義或說明中有直接或間接調(diào)用自身的一種方法,它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似的規(guī)模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進(jìn)段和遞歸返回段。當(dāng)邊界條件不滿足時,遞歸前進(jìn);當(dāng)邊界條件滿足時,遞歸返回?!@是百度百科說的。

其實(shí)說白了,就是遞歸方法本身調(diào)用自己而進(jìn)行的運(yùn)算,下面舉個例子說明一下這個例子就是很著名的——斐波那契數(shù)列。
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……
可以看出來第三個數(shù)就是前面兩個數(shù)相加從而得到的。

如果使用正常的循環(huán)進(jìn)行解決的話就是這樣:

public class FeiBo{
  public static void main(String[] args) {
    int num1=0;
    int num2=1;
    int numn=1;
    int n=10;
    for (int i = 3; i <=n; i++) {
      numn=num1+num2;
      num1=num2;
      num2=numn;
    }
    System.err.println(n+"個數(shù)的結(jié)果為:"+numn);
  }
}

運(yùn)行結(jié)果為:

10個數(shù)的結(jié)果為:34

這是使用正常的循環(huán)方法進(jìn)行運(yùn)算,如果使用遞歸的話就是一下這樣:

public static int Recursion(int n){

    if(n==1){
      return 0;
    }

    if(n==2){
      return 1;
    }
    return Recursion(n-1)+Recursion(n-2);
  }

遞歸需要結(jié)束條件,到情況下遞歸就不需要繼續(xù)調(diào)用,結(jié)束遞歸。上面案例結(jié)束條件就是當(dāng)n=1或者2的時候,就返回0或者1,而不是繼續(xù)調(diào)用遞歸方法本身了。

遞歸最主要的兩個條件就是,自己調(diào)用自己,結(jié)束遞歸的條件。

因為遞歸是自己調(diào)用自己所以浪費(fèi)資源大,運(yùn)行時間比循環(huán)長很多,運(yùn)行慢,效率底。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot集成SOL鏈的詳細(xì)過程

    SpringBoot集成SOL鏈的詳細(xì)過程

    Solanaj 是一個用于與 Solana 區(qū)塊鏈交互的 Java 庫,它為 Java 開發(fā)者提供了一套功能豐富的 API,使得在 Java 環(huán)境中可以輕松構(gòu)建與 Solana 區(qū)塊鏈交互的應(yīng)用程序,這篇文章主要介紹了SpringBoot集成SOL鏈的詳細(xì)過程,需要的朋友可以參考下
    2025-01-01
  • SpringBoot內(nèi)置tomcat參數(shù)調(diào)優(yōu)的實(shí)現(xiàn)

    SpringBoot內(nèi)置tomcat參數(shù)調(diào)優(yōu)的實(shí)現(xiàn)

    springboot內(nèi)置了tomcat, 并給我們設(shè)置了默認(rèn)參數(shù), 我們怎么樣修改springboot內(nèi)置的tomcat參數(shù),本文就詳細(xì)的來介紹一下,感興趣的可以了解一下
    2023-09-09
  • 詳解如何解析pom文件方法示例

    詳解如何解析pom文件方法示例

    這篇文章主要為大家介紹了詳解如何解析pom文件方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • java實(shí)現(xiàn)遍歷樹形菜單兩種實(shí)現(xiàn)代碼分享

    java實(shí)現(xiàn)遍歷樹形菜單兩種實(shí)現(xiàn)代碼分享

    這篇文章主要介紹了java實(shí)現(xiàn)遍歷樹形菜單兩種實(shí)現(xiàn)代碼分享,兩種實(shí)現(xiàn):OpenSessionView實(shí)現(xiàn)、TreeAction實(shí)現(xiàn)。具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • java 中使用匿名類直接new接口詳解及實(shí)例代碼

    java 中使用匿名類直接new接口詳解及實(shí)例代碼

    這篇文章主要介紹了java 中使用匿名類直接new接口詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java 程序內(nèi)部是如何執(zhí)行的?

    Java 程序內(nèi)部是如何執(zhí)行的?

    這篇文章主要介紹了Java 程序內(nèi)部是如何執(zhí)行的,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • springboot集成mybatis-maven插件自動生成pojo的詳細(xì)教程

    springboot集成mybatis-maven插件自動生成pojo的詳細(xì)教程

    這篇文章主要介紹了springboot集成mybatis-maven插件自動生成pojo的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SpringCloud搭建Eureka服務(wù)模塊的過程

    SpringCloud搭建Eureka服務(wù)模塊的過程

    Eureka在分布式系統(tǒng)中起到了連接各個微服務(wù)的紐帶作用,使得服務(wù)之間的交互變得更加靈活、可靠,本文將深入探討如何使用Spring?Cloud,逐步引導(dǎo)讀者完成Eureka服務(wù)模塊的搭建,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • maven打包如何指定jdk的版本

    maven打包如何指定jdk的版本

    這篇文章主要介紹了maven打包如何指定jdk的版本問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java基于阻塞隊列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型示例詳解

    Java基于阻塞隊列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型示例詳解

    這篇文章主要介紹了Java基于阻塞隊列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型,阻塞隊列的特點(diǎn)就是阻塞兩個字,阻塞功能使得生產(chǎn)者和消費(fèi)者兩端的能力得以平衡,當(dāng)有任何一端速度過快時,阻塞隊列便會把過快的速度降下來,感興趣的朋友可以參考下
    2023-12-12

最新評論

靖安县| 云南省| 咸宁市| 闽侯县| 多伦县| 永春县| 英德市| 周口市| 彭州市| 和静县| 日照市| 平舆县| 鲜城| 遂平县| 黑水县| 迁西县| 运城市| 河源市| 尚义县| 阿拉尔市| 育儿| 阿拉善右旗| 高密市| 景德镇市| 孝昌县| 平乡县| 东丽区| 陆丰市| 凌云县| 开平市| 安溪县| 永德县| 广水市| 榆中县| 昭平县| 孝义市| 汝州市| 涿州市| 桃园市| 巴林左旗| 保德县|