傳說在古代印度的貝拿勒斯聖廟裡,安放了一塊黃銅板,板上插了三根寶石柱(不妨設A、B、C柱),在A寶石柱上,自上而下按由小到大的順序串有64個金盤。要求將A柱子上的64個金盤按照下面的規則移到C柱上。
規則:
①一次只能移一個盤子;
②盤子只能在三個柱子上存放;
③任何時候大盤不能放在小盤上面。
任務:輸入正整數n(A柱上的盤子數),輸出移動到C柱上的移動過程。
分析 :設A上有n個盤子。
1. n=1時,則將圓盤從A直接移動到C。
2. n=2時,則:
①將A上的1個圓盤移到B上;
②再將A上的一個圓盤移到C上;
③最後將B上的1個圓盤移到C上。
★★★有了代碼就好辦了★★★
代碼奉上▼
#include<stdio.h> void hanoi(int n,char A,char B,char C) { if(n==1) printf("%c→%c",A,C); else { hanoi(n-1,A,C,B); printf("%c→%c\n",A,C); hanoi(n-1,B,A,C); } } int main() { hanoi(20,'X','Y','Z'); }
關於C++與Dev-C++的下載