遞迴-*漢諾塔
Problem Description
漢諾塔(又稱河內塔)問題是印度的一個古老的傳說。
開天闢地的神勃拉瑪在一個廟裡留下了三根金剛石的棒A、B和C,A上面套著n個圓的金片,最大的一個在底下,其餘一個比一個小,依次疊上去,廟裡的眾僧不倦地把它們一個個地從A棒搬到C棒上,規定可利用中間的一根B棒作為幫助,但每次只能搬一個,而且大的不能放在小的上面。
僧侶們搬得汗流滿面,可惜當n很大時這輩子恐怕就很搬完了。
聰明的你還有計算機幫你完成,你能寫一個程式幫助僧侶們完成這輩子的夙願嗎?
Input
輸入金片的個數n。這裡的n<=10。
Output
輸出搬動金片的全過程。格式見樣例。
Sample Input
2
Sample Output
Move disk 1 from A to B Move disk 2 from A to C Move disk 1 from B to C
Hint
可以用遞迴演算法實現。
#include<stdio.h>
#include<stdlib.h>
int step = 1;
void print(int n,char a,char b){
printf("Move disk %d from %c to %c\n",n,a,b);
}
void move(int n,char a,char b,char c){
if(n == 1){
print(n,a,c);
}else{
move(n-1,a,c,b);
print(n,a,c);
move(n-1,b,a,c);
}
}
int main(){
int a;
scanf("%d",&a);
move(a,'A','B','C');
return 0;
}
相關文章
- 漢諾塔和遞迴遞迴
- 課時24:遞迴:漢諾塔遞迴
- 遞迴求解漢諾塔問題遞迴
- 漢諾塔的圖解遞迴演算法圖解遞迴演算法
- python3:遞迴解漢諾塔問題Python遞迴
- 從漢諾塔遊戲理解python遞迴函式遊戲Python遞迴函式
- SQL 漢諾塔SQL
- 漢諾塔-PythonPython
- 【YbtOJ高效進階 遞推-2】奇怪漢諾塔
- 漢諾塔詳解
- 第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題排序遞迴
- 奇怪的漢諾塔 - 題解
- JAVA漢諾塔遞迴 之SpringCloud企業分散式微服務雲架構快速開發平臺Java遞迴SpringGCCloud分散式微服務架構
- Python實現:漢諾塔問題Python
- 小知識系列(3):Hanoi塔(漢諾塔,河內塔)
- PHP實現漢諾塔演算法PHP演算法
- 漢諾塔遊戲《演算法很美》遊戲演算法
- 手把手教你用java實現資料結構(五)-----查詢(二分法),遞迴(斐波那契數列,漢諾塔)演算法Java資料結構遞迴演算法
- 漢諾塔與二進位制、滿二叉樹的千絲萬縷二叉樹
- 遞迴和尾遞迴遞迴
- 快速排序【遞迴】【非遞迴】排序遞迴
- 遞迴遞迴
- 什麼是遞迴?遞迴和迴圈的異同遞迴
- go 遞迴Go遞迴
- JavaScript遞迴JavaScript遞迴
- 理解遞迴遞迴
- 分而治之-遞迴遞迴
- 漢羅塔問題 java實現Java
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- [演算法練習及思路-程式設計師面試金典(Java解法)]No46.漢諾塔問題演算法程式設計師面試Java
- 遞迴和遞推總結遞迴
- 迭代與遞迴--你被遞迴搞暈過嗎?遞迴
- 演算法小專欄:遞迴與尾遞迴演算法遞迴
- 遞迴呼叫 VS 迴圈呼叫遞迴
- 遞迴總結遞迴
- SQL 遞迴思想SQL遞迴
- 遞迴函式遞迴函式
- 談談遞迴遞迴