C語言解決漢諾塔問題

kdloeki 9年前發布 | 954 次閱讀 C/C++

C語言解決漢諾塔問題

#include "stdio.h"
void hanoi(int n,char one ,char two,char three);
void move(char aa,char bb);
int main()
{
    int n;
    printf("漢諾塔問題,將盤子從a,借助于b移動到c.\n");
    printf("請輸入盤子數:");
    scanf("%d",&n);
    printf("移動順序為:\n");
    hanoi(n,'a','b','c');
    return 0;
}
//將n個盤子從one借助于two移動到three
void hanoi(int n,char one ,char two,char three)
{
    if(n==1)
    {
        move(one,three);
    }
    else
    {
        hanoi(n-1,one,three,two);
        move(one,three);
        hanoi(n-1,two,one,three);
    }
}

//從a移動到b void move(char a,char b) { printf("%c--->%c\n",a,b); }</pre>

 本文由用戶 kdloeki 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!