漢諾塔的實現
/*漢諾塔的演算法就3個步驟:第一,把a上的n-1個盤通過c移動到b。第二,把a上的最下面的盤移到c。第三,因為n-1個盤全在b上了,所以把b當做a重複以上步驟就好了。所以演算法看起來就簡單多了。不過,思考過程還是很痛苦的,難以理解。遞迴中會儲存資料的好處在這裡又得到體現,太神奇了。*/
#include <iostream>
#include<stdio.h>
using namespace std;
void move(int n, char a, char b, char c)
{
if (n == 1)
cout << a << c << endl; //當n只有1個的時候直接從a移動到c
else
{
move(n-1, a, c, b); //第n-1個要從a通過c移動到b
cout << a << c << endl;
move(n-1, b, a, c); //n-1個移動過來之後b變開始盤,b通過a移動到c,這邊很難理解
}
}
int main()
{
int n;
cout<<"請輸入要移動的塊數:" << endl;
cin >> n;
move(n, 'a', 'b', 'c');
system("pause");
return(0);
}
相關文章
- hanoi漢諾塔C++實現C++
- 百練OJ:4147:漢諾塔問題(Hanoi)——python實現漢諾塔Python
- PHP實現漢諾塔演算法PHP演算法
- Python實現:漢諾塔問題Python
- 漢諾塔(hanoi) C語言實現C語言
- 遞迴實現漢諾塔問題遞迴
- c++遞迴與迭代實現漢諾塔C++遞迴
- SQL 漢諾塔SQL
- 漢諾塔詳解
- 漢諾塔-PythonPython
- ACM 漢諾塔(三)ACM
- 奇怪的漢諾塔 - 題解
- 漢諾塔通項公式公式
- 漢諾塔和遞迴遞迴
- 小知識系列(3):Hanoi塔(漢諾塔,河內塔)
- 漢諾塔遊戲《演算法很美》遊戲演算法
- 漢諾塔演算法演示1.0演算法
- 經典遞迴解決漢諾塔!遞迴
- 漢諾塔非遞迴演算法遞迴演算法
- 漢諾塔非遞迴棧程式碼遞迴
- 漢諾塔移動步數的計算 (轉)
- 漢諾塔的圖解遞迴演算法圖解遞迴演算法
- C#中漢諾塔問題的遞迴解法C#遞迴
- 【YbtOJ高效進階 遞推-2】奇怪漢諾塔
- 從漢諾塔遊戲理解python遞迴函式遊戲Python遞迴函式
- python3:遞迴解漢諾塔問題Python遞迴
- js解決漢諾塔問題程式碼例項JS
- 化繁為簡 經典的漢諾塔遞迴問題 in Java遞迴Java
- js漢諾塔問題解決方法程式碼例項JS
- 【分治演算法】歸併排序,快速排序和漢諾塔演算法排序
- 基於HTML5的WebGL設計漢諾塔3D遊戲HTMLWeb3D遊戲
- 漢諾塔與二進位制、滿二叉樹的千絲萬縷二叉樹
- HT for Web 3D遊戲設計設計--漢諾塔(Towers of Hanoi)Web3D遊戲設計
- 漢羅塔問題 java實現Java
- 第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題排序遞迴
- 4.3.3 OpenCV 實現 高斯金字塔和拉普拉斯金字塔OpenCV
- 列印可自定義的字母金字塔(python實現)Python
- 手把手教你用java實現資料結構(五)-----查詢(二分法),遞迴(斐波那契數列,漢諾塔)演算法Java資料結構遞迴演算法