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); } } } |
Java數據結構及算法實例:漢諾塔問題 Hanoi
2019-12-24 13:03junjie JAVA教程
這篇文章主要介紹了Java數據結構及算法實例:漢諾塔問題 Hanoi,本文直接給出實現代碼,代碼中包含大量注釋,需要的朋友可以參考下
延伸 · 閱讀
- 2019-12-24Java數據結構及算法實例:選擇排序 Selection Sort
- 2019-12-23使用java處理字符串公式運算的方法
- 2019-12-23Java連接MySql的詳細介紹
- 2019-12-23Java數據結構及算法實例:考拉茲猜想 Collatz Con
- 2019-12-23Java數據結構及算法實例:快速計算二進制數中
- 2019-12-23Java數據結構及算法實例:三角數字
精彩推薦
- JAVA教程
java實現將ftp和http的文件直接傳送到hdfs
前面幾篇文章,我們已經做了很好的鋪墊了,幾個要用到的工具我們都做了出來,本文就是將他們集合起來,說下具體的用法,小伙伴們可以參考下。 ...
- JAVA教程
java數據結構和算法學習之漢諾塔示例
這篇文章主要介紹了java數據結構和算法中的漢諾塔示例,需要的朋友可以參考下 ...
- JAVA教程
java獲得平臺相關的行分隔符和java路徑分隔符的方法
不同系統平臺下的行分隔符、路徑分隔符等常常不同,如何在Java程序獲取當前平臺的分隔符,以及其他系統相關的狀態呢?下面是示例程序,需要的朋友可...
- JAVA教程
java HashMap通過value反查key的代碼示例
本文講解了java HashMap通過value反查key的方法,直接提供代碼供大家參考使用 ...
- JAVA教程
Java利用剪貼板實現交換程序間數據的方法
這篇文章主要介紹了Java利用剪貼板實現交換程序間數據的方法,需要的朋友可以參考下 ...
- JAVA教程
Java集合Set、List、Map的遍歷方法
這篇文章主要介紹了Java集合Set、List、Map的遍歷方法,是非常實用的遍歷技巧,需要的朋友可以參考下 ...
- JAVA教程
java計算任意位水仙花數示例(回文數)
這篇文章主要介紹了java計算任意位水仙花數示例(回文數),需要的朋友可以參考下 ...
- JAVA教程
Java結合百度云存儲BCS代碼分享
最近云是一個很熱門的新概念,仿佛任何東西只要跟云相關聯,就立馬高大上起來,額,我們也追隨潮流吧,項目中也結合一下云!! ...