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