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

Java 實現(xiàn)一個漢諾塔實戰(zhàn)練習(xí)

 更新時間:2021年10月25日 14:38:38   作者:Dark And Grey  
漢諾塔是源于印度一個古老傳說的益智玩具。大梵天創(chuàng)造世界時做了三根石柱,在一根柱子上從下往上按大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤上不能放大圓盤,三根柱子之間一次只能移動一個圓盤

漢諾塔簡介:

在這里插入圖片描述

我們想要實現(xiàn)的是 讓 A柱上的盤子,移動到C柱上

1層漢諾塔

在這里插入圖片描述

2層漢諾塔

在這里插入圖片描述

3層漢諾塔詳解圖

在這里插入圖片描述

第一步

在這里插入圖片描述

第二步

在這里插入圖片描述

第三步

在這里插入圖片描述

第四步

在這里插入圖片描述

第五步

在這里插入圖片描述

第六步

在這里插入圖片描述

第七步

在這里插入圖片描述

經(jīng)過上面的圖解,相比大家一定在一定程度了解到漢諾塔的游戲規(guī)則,以及怎么去玩。

總之 最終C柱上第一個盤子,是最大,最頂?shù)氖亲钚〉?,而且在操作過程中,前幾步就是為了讓三個柱子中最大的盤子移動到C柱上,
然后不斷,將它兩個柱子中最大盤子往上累加,(盤子從大到小,從下往上擺放)

而且盤子一多,你就會發(fā)現(xiàn)過程中間,除了最大的盤子,其余的盤子都會集中在 B柱上,這樣才能把 A 柱上最底下也是最大的盤子,移動到C上。
這是規(guī)律一

還有一個規(guī)律,在最大的盤子移動C柱上之后,第二個大的盤子要放在A柱上,其余盤子按照規(guī)則全部放在B柱上,
這樣第二大的盤子才能移動到最大的盤子上

說白了,盤子再多,也要按照上面兩個規(guī)律,才能完成整個游戲

那我把最大盤子上面的所有盤子看成一個整體,放在B柱上,最大盤子移動到C柱上,把B柱上盤子直接蓋上去,不就行了,反正也就是重復(fù)那兩個規(guī)律而已

在這里插入圖片描述

程序如下

import java.util.Scanner;

public class Manuscript {
    static int times;// 移動次數(shù)
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char A = 'A';
        char B = 'B';
        char C = 'C';
        int n = scanner.nextInt();
        game(n,A,B,C);
        scanner.close();
    }
    public static void move(int disk,char M,char N){
        System.out.println("第"+(++times)+"次移動,盤子"+disk+" "+M +"---->"+N);

    }
    public static void game(int n,char A,char B,char C){
        if(n==1){
            move(n,A,C);// 把A柱目前最大盤子放在C柱上,第一次肯定最大的那個
        }else{
            // 將 n-1 個 盤子 放到B柱子,注意ABC位置,再看看下面  move(n,A,C);,細細琢磨
            game(n-1,A,C,B);// A   B(C)  C(B)
            
            
            move(n,A,C);
            
            // 把n-1 個盤子 放在C上,注意ACB位置
            game(n-1,B,A,C);// A(B)  B(A) C
        }
    }
}

3層漢諾塔的輸出結(jié)果附圖(可以返回去看看,對一對)

在這里插入圖片描述

有什么疑問,可以在下方討論,切記 不要自己帶入一個特別大數(shù)字去展開,帶入一個 1 ~3 ,了解規(guī)律就行。不主張展開,主張掌握規(guī)律(遞推公式)。

本文結(jié)束。

以上就是Java 實現(xiàn)一個漢諾塔實戰(zhàn)練習(xí)的詳細內(nèi)容,更多關(guān)于Java 漢諾塔的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java的idea連接mongodb數(shù)據(jù)庫的詳細教程

    Java的idea連接mongodb數(shù)據(jù)庫的詳細教程

    這篇文章主要介紹了Java的idea連接mongodb數(shù)據(jù)庫的詳細教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java基礎(chǔ)之常用的命令行指令

    Java基礎(chǔ)之常用的命令行指令

    這篇文章主要介紹了Java基礎(chǔ)之常用的命令行指令,文中有非常詳細的圖文示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • MyBatis-Plus自定義通用的方法實現(xiàn)

    MyBatis-Plus自定義通用的方法實現(xiàn)

    MP自帶的條件構(gòu)造器雖然很強大,有時候也避免不了寫稍微復(fù)雜一點業(yè)務(wù)的sql,本文主要介紹了MyBatis-Plus自定義通用的方法實現(xiàn),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java Lambda表達式與匿名內(nèi)部類的聯(lián)系和區(qū)別實例分析

    Java Lambda表達式與匿名內(nèi)部類的聯(lián)系和區(qū)別實例分析

    這篇文章主要介紹了Java Lambda表達式與匿名內(nèi)部類的聯(lián)系和區(qū)別,結(jié)合實例形式分析了Java Lambda表達式與匿名內(nèi)部類功能、用法、區(qū)別及操作注意事項,需要的朋友可以參考下
    2019-10-10
  • springboot+springsecurity如何實現(xiàn)動態(tài)url細粒度權(quán)限認證

    springboot+springsecurity如何實現(xiàn)動態(tài)url細粒度權(quán)限認證

    這篇文章主要介紹了springboot+springsecurity如何實現(xiàn)動態(tài)url細粒度權(quán)限認證的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • struts2框架入門

    struts2框架入門

    本文主要介紹了struts2框架的基礎(chǔ)入門知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Spring Cloud項目前后端分離跨域的操作

    Spring Cloud項目前后端分離跨域的操作

    這篇文章主要介紹了Spring Cloud項目前后端分離跨域的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • spark中使用groupByKey進行分組排序的示例代碼

    spark中使用groupByKey進行分組排序的示例代碼

    這篇文章主要介紹了spark中使用groupByKey進行分組排序的實例代碼,本文通過實例代碼給大家講解的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Java結(jié)合JS實現(xiàn)URL編碼與解碼

    Java結(jié)合JS實現(xiàn)URL編碼與解碼

    這篇文章介紹了Java結(jié)合JS實現(xiàn)URL編碼與解碼的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Java對比兩個實體的差異分析

    Java對比兩個實體的差異分析

    這篇文章主要介紹了Java對比兩個實體的差異分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論