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

java遞歸實(shí)現(xiàn)漢諾塔步驟介紹

 更新時(shí)間:2022年01月10日 10:06:44   作者:zzz45611  
大家好,本篇文章主要講的是java遞歸實(shí)現(xiàn)漢諾塔步驟介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

        漢諾塔的規(guī)則是:一共三根柱子,一根柱子從上到下套著有小到大的若干個(gè)圓盤(pán),要將所有圓盤(pán)按照這個(gè)排放順序移動(dòng)到第三根柱子上,并且每次只能移動(dòng)一個(gè)圓盤(pán).

        可以將整個(gè)過(guò)程分為三個(gè)步驟來(lái)看:

第一步:將除最大圓盤(pán)外的n-1個(gè)圓盤(pán)移動(dòng)輔助柱子上

第二步:將最大的圓盤(pán)移動(dòng)到目標(biāo)柱子

第三步:將n-1個(gè)圓盤(pán)從輔助柱子移動(dòng)到目標(biāo)柱子

其中第一步又可以拆成一模一樣的三步,可以看成一個(gè)n-1層的塔要移動(dòng)到目標(biāo)柱子,只不過(guò)目標(biāo)柱子換了一個(gè):

第三步也可以拆分成一模一樣的三步: 

        多拆幾次就會(huì)發(fā)現(xiàn)規(guī)律:第一步和第三步無(wú)論如何拆成更小的漢諾塔,都只是目標(biāo)柱和輔助柱發(fā)生調(diào)換,其他部分都是一模一樣.所以我們將第一步和第三步進(jìn)行遞歸運(yùn)算就可以解決漢諾塔問(wèn)題.

static void hanNuo(int n,String A,String B,String C){
     if (n==1){
         System.out.println("把第"+n+"個(gè)從"+A+"移動(dòng)到"+C);
     }else {
         hanNuo(n-1,A,C,B);
         System.out.println("把第"+n+"個(gè)從"+A+"移動(dòng)到"+C);
         hanNuo(n-1,B,A,C);
     }
    }

        每進(jìn)入一次遞歸塔的層數(shù)減一 ,由于第一步和第三步每拆分一次目標(biāo)塔和輔助塔就會(huì)互換,同理,每進(jìn)入一次遞歸也會(huì)將兩個(gè)塔互換,因?yàn)榈谝徊讲鸱帜繕?biāo)塔是在塔二和塔三之間循環(huán),所以我們?cè)谶M(jìn)入遞歸時(shí)也將傳入代表"塔二"和"塔三"的參數(shù)互換,同理第三步也將互換代表"塔一"和"塔二"的參數(shù).

        方法中的第二步由于第一步已經(jīng)遞歸完成,所以可以直接使用打印語(yǔ)句進(jìn)行輸出.

到此這篇關(guān)于java遞歸實(shí)現(xiàn)漢諾塔步驟介紹的文章就介紹到這了,更多相關(guān)java漢諾塔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot與Spring Security的跨域問(wèn)題解決方案

    Spring Boot與Spring Security的跨域問(wèn)題解決方案

    跨域問(wèn)題是指在Web開(kāi)發(fā)中,瀏覽器出于安全考慮,限制了不同域名之間的資源訪問(wèn),本文重點(diǎn)給大家介紹Spring Boot與Spring Security的跨域問(wèn)題解決方案,感興趣的朋友一起看看吧
    2023-09-09
  • eclipse創(chuàng)建項(xiàng)目沒(méi)有dynamic web的解決方法

    eclipse創(chuàng)建項(xiàng)目沒(méi)有dynamic web的解決方法

    最近上課要用到eclipse,要用到Dynamic web project.但是我下載的版本上沒(méi)有.接下來(lái)就帶大家了解 eclipse創(chuàng)建項(xiàng)目沒(méi)有dynamic web的解決方法,文中有非常詳細(xì)的圖文示例,需要的朋友可以參考下
    2021-06-06
  • Java數(shù)組操作的10大方法

    Java數(shù)組操作的10大方法

    下面是精心整理的Java數(shù)組操作的10大方法,大部分代碼都來(lái)自Stack Overflow,需要的朋友可以參考下
    2014-09-09
  • 解決Java的InputMismatchException異常

    解決Java的InputMismatchException異常

    這篇文章介紹了解決Java的InputMismatchException異常的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Jackson多態(tài)序列化圖文詳解

    Jackson多態(tài)序列化圖文詳解

    jackson允許配置多態(tài)類(lèi)型處理,當(dāng)進(jìn)行反序列話時(shí),JSON數(shù)據(jù)匹配的對(duì)象可能有多個(gè)子類(lèi)型,為了正確的讀取對(duì)象的類(lèi)型,我們需要添加一些類(lèi)型信息,下面這篇文章主要給大家介紹了關(guān)于Jackson多態(tài)序列化的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • springboot項(xiàng)目不同環(huán)境的配置讀取方式

    springboot項(xiàng)目不同環(huán)境的配置讀取方式

    SpringBoot支持application.properties、application.yml、application.yaml三種配置文件類(lèi)型,可同時(shí)存在并合并配置,配置文件的讀取優(yōu)先級(jí)為:application.properties > application.yml > application.yaml,不同位置的相同類(lèi)型配置文件
    2024-11-11
  • Java:com.netflix.client.ClientException錯(cuò)誤解決

    Java:com.netflix.client.ClientException錯(cuò)誤解決

    本文主要介紹了Java:com.netflix.client.ClientException錯(cuò)誤解決,主要是指出客戶(hù)端?module-sso?試圖通過(guò)負(fù)載均衡器訪問(wèn)服務(wù)時(shí),負(fù)載均衡器沒(méi)有找到可用的服務(wù)器來(lái)處理請(qǐng)求,下面就來(lái)介紹一下解決方法
    2024-08-08
  • Spring-boot 2.3.x源碼基于Gradle編譯過(guò)程詳解

    Spring-boot 2.3.x源碼基于Gradle編譯過(guò)程詳解

    這篇文章主要介紹了Spring-boot 2.3.x源碼基于Gradle編譯過(guò)程詳解,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java 創(chuàng)建并應(yīng)用PPT幻燈片母版的方法示例

    Java 創(chuàng)建并應(yīng)用PPT幻燈片母版的方法示例

    幻燈片母版可供用戶(hù)設(shè)置幻燈片的樣式,本文將介紹如何用Java創(chuàng)建并應(yīng)用單個(gè)或多個(gè)幻燈片母版。感興趣可以了解一下
    2020-06-06
  • MyBatis框架之mybatis逆向工程自動(dòng)生成代碼

    MyBatis框架之mybatis逆向工程自動(dòng)生成代碼

    Mybatis屬于半自動(dòng)ORM,在使用這個(gè)框架中,工作量最大的就是書(shū)寫(xiě)Mapping的映射文件,由于手動(dòng)書(shū)寫(xiě)很容易出錯(cuò),我們可以利用Mybatis-Generator來(lái)幫我們自動(dòng)生成文件。本文主要給大家介紹mybatis逆向工程自動(dòng)生成代碼,感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04

最新評(píng)論

涿州市| 苏州市| 崇义县| 吉木乃县| 许昌市| 皮山县| 美姑县| 万山特区| 镇雄县| 洛南县| 封开县| 石台县| 凤阳县| 库伦旗| 浪卡子县| 迁安市| 岳池县| 启东市| 天峻县| 招远市| 红桥区| 电白县| 四平市| 延安市| 增城市| 永清县| 秦安县| 淮南市| 乌鲁木齐县| 建湖县| 喜德县| 黔西| 南安市| 宜君县| 乌兰察布市| 滦平县| 古蔺县| 屏东市| 东明县| 富宁县| 麦盖提县|