Hanoi塔問題


傳說在古代印度的貝拿勒斯聖廟里,安放了一塊黃銅板,板上插了三根寶石柱(不妨設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++的下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM