數據結構經典算法(1) 河內之塔

1. 河內之塔

 說明:河內之塔(Towersof Hanoi)是法國人M .Claus(Lucas)於1883年從泰國帶至法國的,河內爲越戰時 北越的首都,即現在的胡志明市;1883年法國數學家 Edouard Lucas曾提及這個故事,據說創世 紀時Benares有一座波羅教塔,是由三支鑽石棒(Pag)所支撐,開始時神在第一根棒上放置64 個由上至下依由小至大排列的金盤(Disc) ,並命令僧侶將所有的金盤從第一根石棒移至第根三 石棒,且搬運過程中遵守大盤子在小盤子之下的原則,若每日僅搬一個盤子,則當盤子全數搬 運完畢之時,此塔將毀損,而也就是世界末日來臨之時。

void Hanoi(int n,char A,char B,char C)
{
	if (n==1)
	{
		printf("%c->%c\n",A,C);
	} 
	else
	{
		Hanoi(n-1,A,C,B);
		printf("%c->%c\n",A,C);
		Hanoi(n-1,B,A,C);
	}
}
int main()
{
	int n;
	printf("輸入層數");
	scanf("%d",&n);
	char A='A';
	char B='B';
	char C='C';
	Hanoi(n,A,B,C);
	return 0;
}


發佈了30 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章