東華OJ高階56 漢諾塔問題的第m步

2021-10-04 18:17:16 字數 768 閱讀 5476

問題描述 :

給定三根杆a、b、c和大小不同的幾個盤子。這些盤子按尺寸遞減順序套在a桿上,最小的在最上面。現在的任務是把這些盤子從a杆移到c桿且保持原來堆放順序。在實現任務時,每次只能移動乙個盤子,且任何時刻不允許大的盤子放在小的盤子上面,b杆可以作為輔助存放杆。求:總共有n個圓盤時,搬動過程中的第m步是從哪個桿到哪個杆。

輸入說明 :

你的程式需要從標準輸入裝置(通常為鍵盤)中讀入多組測試資料。每組輸入資料由一行組成,每行輸入乙個整數表示盤子數n,1≤n≤10,以及步數m,兩個資料之間以乙個空格分隔。行首和行尾沒有多餘的空格,兩組資料之間也沒有多餘的空行。

輸出說明 :

對每組測試資料,你的程式需要向標準輸出裝置(通常為啟動該程式的終端)依次輸出一行對應的答案,該行中輸出第m步移動的情況,如第m步是從a移到b,則輸出「a--b」(不包括引號)。如果移動過程不存在第m步,則輸出「none」 (不包括引號)。

兩組資料之間無空行,第一組前及最後一組後也無空行。

輸入範例 :

2 32 4

輸出範例 :

b--c

none

#includeint step=0;

int m=0;

int flag=0;

void move(int id,char x,char y)

}void hanoi(int n,char a,char b,char c)

int main()

} return 0;

}

東華大學OJ56 漢諾塔移動問題

56 漢諾塔問題的第m步給定三根杆a b c和大小不同的幾個盤子。這些盤子按尺寸遞減順序套在a桿上,最小的在最上面。現在的任務是把這些盤子從a杆移到c桿且保持原來堆放順序。在實現任務時,每次只能移動乙個盤子,且任何時刻不允許大的盤子放在小的盤子上面,b杆可以作為輔助存放杆。求 總共有n個圓盤時,搬動...

高階56 漢諾塔問題的第m步

56 漢諾塔問題的第m步 問題描述 給定三根杆a b c和大小不同的幾個盤子。這些盤子按尺寸遞減順序套在a桿上,最小的在最上面。現在的任務是把這些盤子從a杆移到c桿且保持原來堆放順序。在實現任務時,每次只能移動乙個盤子,且任何時刻不允許大的盤子放在小的盤子上面,b杆可以作為輔助存放杆。求 總共有n個...

OJ漢諾塔問題

題目 如圖所示的三根針,其中a針上穿好了由大到小的64片金片,不論白天黑夜,總有乙個和尚在按照下面的法則移動金片 一次只移動一片,不管在哪根針上,小片必須在大片上面。和尚們預言,當所有的金片都從a針移到c針上時,世界就將在一聲霹靂中消失,這就是所謂的漢諾塔。請程式設計求出將a針上所有金片移到c上的步...