漢諾塔:漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。大梵天創造世界的時候作了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞着64片黃金圓盤。ios
大梵天命令婆羅門把圓盤從下面開始按大小順序從新擺放在另外一根柱子上。而且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤
spa
//層次分析: A->B A->C B->C A:1 2 -> C: 1 2;遞歸
#include<iostream>
using namespace std;io
int times = 0;ast
void move(char src, char dst)
{
times++; //移動次數
cout << times << ": " << src << "--->" << dst << endl;
}stream
void hanNuoTower(int n, char first, char mid, char last) //n:盤子個數 first:第一個正存着盤子 mid:用來轉移盤子 last:最終存放盤子
{
if (1 == n) //遞歸出口不可忘
move(first, last);
else
{
hanNuoTower(n - 1, first, last, mid);
move(first, last);
hanNuoTower(n - 1, mid, first, last);
}
}im
int main()
{
int n = 4;
hanNuoTower(n, 'A', 'B', 'C');移動
return 0;co
}
//1 : A--->C
//2 : A--->B
//3 : C--->B
//4 : A--->C
//5 : B--->A
//6 : B--->C
//7 : A--->Ctime
//1: A--->B
//2 : A--->C
//3 : B--->C
//4 : A--->B
//5 : C--->A
//6 : C--->B
//7 : A--->B
//8 : A--->C
//9 : B--->C
//10 : B--->A
//11 : C--->A
//12 : B--->C
//13 : A--->B
//14 : A--->C
//15 : B--->C