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

2021-10-05 09:49:33 字數 930 閱讀 7248

56 漢諾塔問題的第m步

問題描述 :

給定三根杆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–cnone

#include

void

fun(

int n,

int m,

char a,

char b,

char c)

;int count;

intmain()

}return0;

}void

fun(

int n,

int m,

char a,

char b,

char c)

}else

fun(n-

1,m,b,a,c)

;//將b上面n-1個借助a移動到c上

}}

56 漢諾塔問題的第m步

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

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

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

漢諾塔的問題

參考 漢諾塔 漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定 在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。假...