第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題
遞迴經典問題——漢諾塔問題:
1-N從A移動到B,C作為輔助:
等價於:
1、1~N-1從A移動到C,A作為源,B作為輔助;
2、把N從A移動到B;
3、1~N-1從C移動到B,A作為輔助。
#include<iostream>
using namespace std;
/*
**將N個盤子從source移動到target的路徑列印
**
**N: 初始的N個從小到大的盤子,N為最大編號
**from: 原始柱子
**to: 目標柱子
** help: 輔助柱子
*/
void printHanoiTower(int N,string from,string to,string help){
if(N==1){
cout<<"move "<<N<<" from "<<from<<" to "<<to<<endl;
return;
}
printHanoiTower(N-1,from,help,to); //先把前N-1個盤子挪到輔助空間去
cout<<"move "<<N<<" from "<<from<<" to "<<to<<endl; //N可以順利地到達target
printHanoiTower(N-1,help,to,from); //讓N-1從輔助空間挪到目標空間
}
int main(){
printHanoiTower(3,"A","B","C");
return 0;
}
注:將前n-1個盤子看做整體。
結果:
相關文章
- 遞迴求解漢諾塔問題遞迴
- python3:遞迴解漢諾塔問題Python遞迴
- 遞迴-*漢諾塔遞迴
- Python實現:漢諾塔問題Python
- 漢諾塔和遞迴遞迴
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 課時24:遞迴:漢諾塔遞迴
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 第二章 :查詢與排序-------遞迴形式進行插入排序排序遞迴
- 第二章 :查詢與排序-------2.16 解題實戰_小白上樓梯(遞迴設計)排序遞迴
- 遞迴問題遞迴
- 漢諾塔的圖解遞迴演算法圖解遞迴演算法
- 奇怪的漢諾塔 - 題解
- LeetCode 90 | 經典遞迴問題,求出所有不重複的子集IILeetCode遞迴
- 從漢諾塔遊戲理解python遞迴函式遊戲Python遞迴函式
- 漢羅塔問題 java實現Java
- 遞迴-*全排列問題遞迴
- 遞迴路徑問題遞迴
- 揹包問題的遞迴與非遞迴演算法遞迴演算法
- 第二章 :查詢與排序-------2.19題目詳解_找出最長連續遞增子序列排序
- 經典揹包問題
- [演算法練習及思路-程式設計師面試金典(Java解法)]No46.漢諾塔問題演算法程式設計師面試Java
- hdu2048遞迴問題遞迴
- hdu2049遞迴問題遞迴
- 樹遞迴問題的求解遞迴
- 揹包問題的一道經典問題
- 第二章 :查詢與排序-------希爾排序排序
- 八數碼 經典問題
- 遞迴解決全排列問題遞迴
- leetcode題解(查詢表問題)LeetCode
- 經典問題 2 —— 動態不包含區間與點完美匹配問題
- sql 模糊查詢問題SQL
- 漢諾塔-PythonPython
- SQL 漢諾塔SQL
- iOS 演算法之排序、查詢、遞迴iOS演算法排序遞迴
- 【YbtOJ高效進階 遞推-2】奇怪漢諾塔
- 第二章 :查詢與排序-------2.13_三種典型遞迴形式演算法的效能分析排序遞迴演算法
- 經典問題之「分支預測」