激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
658
主站蜘蛛池模板: 一边吃奶一边插下面 | 精品在线观看一区二区 | 久久精品久久精品久久精品 | av大全在线免费观看 | 国产精品久久久久网站 | 中文字幕在线观看电影 | 美女wc| 一区二区久久精品66国产精品 | 91系列在线观看 | 91成人影库 | 成人在线免费观看网址 | 久久人| 粉嫩粉嫩一区二区三区在线播放 | 免费人成年短视频在线观看网站 | 一级黄色毛片子 | 成人在线视频在线观看 | 黄色成年在线观看 | 国产成年人在线观看 | 国产精品毛片无码 | 欧美视频一二三区 | 国产69久久精品成人看 | 国产日韩免费观看 | 99re66热这里只有精品8 | 免费欧美精品 | 亚洲第五色综合网 | 国产亚洲高清在线精品不卡 | 久久国产精品区 | 国产成人av在线播放 | 欧美日韩色 | 亚洲电影免费观看国语版 | 成人午夜精品久久久久久久3d | 国产精品视频一区二区噜噜 | 91热久久免费频精品黑人99 | 日日操夜夜透 | 国产欧美精品一区二区三区四区 | 一级免费特黄视频 | 九九热视频在线 | 国产一区二区三区视频在线观看 | 美国人成人在线视频 | 日韩黄色成人 | 国产一区二区精品91 |