一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 實現一個漢諾塔實戰練習

Java 實現一個漢諾塔實戰練習

2022-02-28 00:44Dark And Grey Java教程

漢諾塔是源于印度一個古老傳說的益智玩具。大梵天創造世界時做了三根石柱,在一根柱子上從下往上按大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規定,在小圓盤上

漢諾塔簡介:

Java 實現一個漢諾塔實戰練習

我們想要實現的是 讓 a柱上的盤子,移動到c柱上

1層漢諾塔

Java 實現一個漢諾塔實戰練習

2層漢諾塔

Java 實現一個漢諾塔實戰練習

3層漢諾塔詳解圖

Java 實現一個漢諾塔實戰練習

第一步

Java 實現一個漢諾塔實戰練習

第二步

Java 實現一個漢諾塔實戰練習

第三步

Java 實現一個漢諾塔實戰練習

第四步

Java 實現一個漢諾塔實戰練習

第五步

Java 實現一個漢諾塔實戰練習

第六步

Java 實現一個漢諾塔實戰練習

第七步

Java 實現一個漢諾塔實戰練習

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

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

而且盤子一多,你就會發現過程中間,除了最大的盤子,其余的盤子都會集中在 b柱上,這樣才能把 a 柱上最底下也是最大的盤子,移動到c上。
這是規律一

還有一個規律,在最大的盤子移動c柱上之后,第二個大的盤子要放在a柱上,其余盤子按照規則全部放在b柱上,
這樣第二大的盤子才能移動到最大的盤子上

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

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

Java 實現一個漢諾塔實戰練習

程序如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.scanner;
 
public class manuscript {
    static int times;// 移動次數
    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層漢諾塔的輸出結果附圖(可以返回去看看,對一對)

Java 實現一個漢諾塔實戰練習

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

本文結束。

以上就是java 實現一個漢諾塔實戰練習的詳細內容,更多關于java 漢諾塔的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/DarkAndGrey/article/details/120924413

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: bdsm中国精品调教 | 欧美综合精品一区二区三区 | 国产一级特黄在线播放 | 成年男女免费视频网站 | 精品国产中文字幕在线视频 | 成人在线av视频 | 免费观看在线 | 搓光美女衣| 欧美黑人性猛交╳xx╳动态图 | 免费看男人狂躁女人 | 青草娱乐极品免费视频 | 成人欧美1314www色视频 | 无删减影视免费观看 | 欧美精品一区二区在线观看播放 | aaaa大片| 日韩欧美在线视频一区二区 | 亚洲嫩模吧粉嫩粉嫩冒白浆 | xnxx18美女| 精品AV综合导航 | 99青青青精品视频在线 | 国产精品日本一区二区三区在线看 | 国产午夜精品久久久久小说 | 天天色天天综合 | 午夜影院在线免费观看 | 九九热视频免费 | 亚洲品质自拍网站 | 国产高清ujzzujzz | 国产日韩欧美精品在线 | 亚洲欧美影院 | 99这里都是精品 | 嗯啊在线观看免费影院 | 国外成品精品1688 | 3x免费高清视频 | 色综合久久98天天综合 | 国产欧美日韩精品一区二 | 嫩草影院地址一地址二 | 热巴在公交车h文 | 美女用手扒开粉嫩的屁股 | 午夜精品久久久久久 | 亚洲AV福利天堂一区二区三 | 国产精品视频免费观看 |