當前位置:編程學習大全網 - 編程軟體 - 漢諾塔問題的C語言程序應該怎麽寫?並請說明壹下原因

漢諾塔問題的C語言程序應該怎麽寫?並請說明壹下原因

其實主要就是三個步驟:

第壹,把a上的n-1個盤通過c移動到b。

第二,把a上的最下面的盤移到c。

第三,因為n-1個盤全在b上了,所以把b當做a重復以上步驟就好了。

#include<stdio.h>

void?move(int?n,char?a,char?b,char?c)

{

if(n==1)

printf("\t%c->%c\n",a,c);//當n只有1個的時候直接從a移動到c

else

{

move(n-1,a,c,b);//第n-1個要從a通過c移動到b

printf("\t%c->%c\n",a,c);

move(n-1,b,a,c);//n-1個移動過來之後b變開始盤,b通過a移動到c

}

}

int?main()

{

int?n;

printf("請輸入要移動的塊數:");

scanf("%d",&n);

move(n,'a','b','c');

return?0;

}

  • 上一篇:標誌408時鐘怎麽調
  • 下一篇:MATLAB中,怎樣把壹組給定的數據隨機排列?
  • copyright 2024編程學習大全網