簡單全面分析漢諾塔問題!!!!
阿新 • • 發佈:2018-12-11
初學者分析漢諾塔問題,更通俗的講就是圓盤移動,其實只要簡單將任意個圓盤分解為兩個總體移動就好!!!!
(簡單通俗易懂,希望能得到大家的支援能幫到大家,也希望能有人能一起討論c++問題,我是學c++的,我也只是個初學者!!!!)分析來看**a**是目標所在塔,**b**是中轉塔,**c**是目標塔
void yuanpan_zhuanyi(int n, char a, char b, char c)//漢諾塔圓盤轉移問題 { if (n == 1)//當只有一個時直接移動即可 { cout << "將第1個圓盤從" << a << "轉移到" << c << endl; } else { yuanpan_zhuanyi(n - 1, a, c, b); /*當有多個盤需要移動時,分解看成兩個盤(**上盤U**,**目標盤D**,將U移動到中轉盤b,D移動到目標塔c), 此時對於U來說c是中轉的。b才是目標*/ cout << "將第" << n << "個圓盤從" << a << "轉移到" << c << endl; yuanpan_zhuanyi(n - 1, b, a, c);//最後將上盤U移動到C,此時分析知道b是目標所在塔,c目標塔 } } int main() { char a = 'a'; char b = 'b'; char c = 'c'; int n; couy<<"你想移動幾個盤到目標塔:"; cin>>n yuanpan_zhuanyi(n, a, b, c); return 0; } 初學者程式碼,希望能簡單幫到大家,也希望大家能給我帶你支援與交流!!!!!