有三根相鄰的柱子,標(biāo)號(hào)為A,B,C,
A柱子上從下到上按金字塔狀疊放著n個(gè)不同大小的圓盤(pán),
現(xiàn)在把所有盤(pán)子一個(gè)一個(gè)移動(dòng)到柱子B上,
并且每次移動(dòng)同一根柱子上都不能出現(xiàn)大盤(pán)子在小盤(pán)子上方 (如下圖)

設(shè)N個(gè)盤(pán)子
1.把N-1個(gè)盤(pán)子 從 A柱借助 B柱移到C柱
2.把第N個(gè)盤(pán)子 移動(dòng)到B柱
3.把N-1個(gè)盤(pán)子 從 C柱借助 A柱移到B柱
public static void main(String[] args) {
printHanoiTower(3, "A", "B", "C");
}
/**
*
* @param N 初始N個(gè)從小到大的盤(pán)子
* @param from 原始柱子 A
* @param to 目標(biāo)柱子 B
* @param help 輔助柱子 C
*/
static void printHanoiTower(int N, String from, String to, String help) {
if(N == 1) {
System.out.println("move"+N+"from"+from+"to"+to);
return;
}
printHanoiTower(N-1, from, help, to);//N-1個(gè)盤(pán)子移動(dòng)到輔助柱子上
System.out.println("move"+N+"from"+from+"to"+to);//第N個(gè)到達(dá)目標(biāo)柱子
printHanoiTower(N-1, help, to, from);//N-1個(gè)盤(pán)子借助A從C移動(dòng)到目標(biāo)柱子
}