雙色Hanoi塔問題

2021-08-04 03:59:55 字數 679 閱讀 2631

題目描述

設a、b、c是3 個塔座。開始時,在塔座a 上有一疊共n 個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,……,n,奇數號圓盤著藍色,偶數號圓盤著紅色,如圖所示。現要求將塔座a 上的這一疊圓盤移到塔座b 上,並仍按同樣順序疊置。在移動圓盤時應遵守以下移動規則:

規則(1):每次只能移動1 個圓盤;

規則(2):任何時刻都不允許將較大的圓盤壓在較小的圓盤之上;

規則(3):任何時刻都不允許將同色圓盤疊在一起;

規則(4):在滿足移動規則(1)-(3)的前提下,可將圓盤移至a,b,c 中任一塔座上。

對於給定的正整數n,程式設計計算最優移動方案

輸入輸入正整數n。

輸出將計算出的最優移動方案輸出。每一行由乙個正整數k和2個字元c1和c2組成,表示將第k個圓盤從塔座c1移到塔座c2上。2個字元之間有1個空格。

樣例輸入

3樣例輸出

1 a b

2 a c

1 b c

3 a b

1 c a

2 c b

1 a b

#include#includeusing namespace std;

int n;

void move(int n,char a,char c)

雙色Hanoi塔問題

設a,b,c是3個塔座。開始時,在塔座a上有一疊共n個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,n,奇數號圓盤著藍色,偶數號圓盤著紅色。現要求將塔座a上的這一疊圓盤移到塔座b上,並仍按同樣順序疊置。在移動圓盤時應遵守以下移動規則 規則 1 每次只能移動1個圓盤 規則 2...

雙色Hanoi塔問題

雙色hanoi塔問題 問題描述 設a b c是3 個塔座。開始時,在塔座a 上有一疊共n 個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,n,奇數號圓盤著藍色,偶數號圓盤著紅色,如圖所示。現要求將塔座a 上的這一疊圓盤移到塔座b 上,並仍按同樣順序疊置。在移動圓盤時應遵守以...

遞迴 雙色Hanoi塔問題

設a b c是3 個塔座。開始時,在塔座a 上有一疊共n 個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,n,奇數號圓盤著藍色,偶數號圓盤著紅色。現要求將塔座a 上的這一疊圓盤移到塔座b 上,並仍按同樣順序疊置。在移動圓盤時應遵守以下移動規則 規則 1 每次只能移動1 個圓...