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

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java數據結構及算法實例:漢諾塔問題 Hanoi

Java數據結構及算法實例:漢諾塔問題 Hanoi

2019-12-24 13:03junjie JAVA教程

這篇文章主要介紹了Java數據結構及算法實例:漢諾塔問題 Hanoi,本文直接給出實現代碼,代碼中包含大量注釋,需要的朋友可以參考下

?
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
33
34
35
36
37
38
39
40
41
42
43
/**
 * 漢諾塔大學的時候就學過,但是根本沒搞明白,唯一知道的就是要用遞歸的方法來求解。
 * 問題描述:
 * 有三根桿子A,B,C。A桿上有N個(N>1)穿孔圓盤,盤的尺寸由下到上依次變小。
 * 要求按下列規則將所有圓盤移至C桿:
 * 1.每次只能移動一個圓盤;
 * 2.大盤不能疊在小盤上面。
 * 提示:可將圓盤臨時置于B桿,也可將從A桿移出的圓盤重新移回A桿,
 * 但都必須尊循上述兩條規則。
 * 問:如何移?最少要移動多少次?
 * 解決方法:
 * 假設只有2個盤子,柱子分別是A, B, C柱。那么只需要三步就可以把他們從A柱移到C柱,
 * 這三步是A->B, A->C, B->C。
 * 如果盤子數n超過2呢,我們就可以把這些盤子看成由最下面的那個盤子和 上面n-1個盤子 兩部分,
 * 這兩部分同樣可以用上面的三步實現移動。
 * 也就是說我們可以通過遞歸地調用上面的步驟實現將所有n個盤子從A柱移動到C柱。
 */
package al;
public class Hanoi {
   
  public static void main(String[] args) {
     
    Hanoi hanoi = new Hanoi();
    hanoi.move(3, 'A', 'B', 'C');
  }
   
  /**
   * @author
   * @param n 盤子數目
   * @param from 起始柱子
   * @param temp 中間柱子
   * @param to 目標柱子
   */
  public void move(int n, char from, char temp, char to) {
    if(n == 1) {
      System.out.println("Move 1 plate from " + from + " to " + to);
    } else {
      move(n-1, from, to, temp);
      move(1, from, temp, to);
      move(n-1, temp, from, to);
    }
  }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 爱爱调教| 成人精品区 | 爱爱亚洲 | 成人影院在线观看视频 | 日本无吗免费一二区 | 国产一区二区三区丶四区 | 日本偷拍xxxxxxww | 日本红色高清免费观看 | 特黄特级高清免费视频毛片 | 国产精品女主播大秀在线 | 大肥婆丰满大肥奶bbw肥 | 9420高清视频在线观看网百度 | 日本免费精品视频 | 国产第一自拍 | 暖暖免费观看高清在线 | 五月香婷 | 99国产精品| 99re8在这里只有精品2 | 欧美三级免费观看 | 免费高清观看 | pppd在线播放 | 免费看一级毛片 | 美女被的在线网站91 | 好大夫在线个人空间 | 欧美视频一级 | 国产精品亚洲va在线观看 | 九九热综合 | 青草视频免费 | a4yy欧美一区二区三区 | 亚洲福利一区二区精品秒拍 | 欧美一级v片 | 国产精品怡红院在线观看 | 国产一区二区不卡视频 | ts人妖另类国产 | 国产亚洲欧美成人久久片 | 动漫美女隐私尿口图片 | 亲爱的客栈第二季免费观看完整版 | 欧美特黄aaaaaa| 息与子中文字幕完整在线 | 韩国三级在线播放 | 国产亚洲女人久久久久久 |