1. 程式人生 > >漢諾塔遞迴C語言程式碼實現

漢諾塔遞迴C語言程式碼實現

#include <stdio.h>
int c=0;
void move(int disk,char start,char end)
{
    printf("step:%d,move %c to %c\n",++c,start,end);
    return;
}
void hanoi(int n,char A,int B,char C)
{
    if(n==1)
        move(1,A,C);//disk=1時,直接將disk從A移動到C
    else
    {
        hanoi(n-1,A,C,B);//第一步,將n-1個盤從A移動到B,其中C為輔助盤
move(n,A,C);//第二步,將n號盤直接從A移動到C hanoi(n-1,B,A,C);//第三步,將B盤上的n-1個盤遞迴呼叫 } return; } int main() { int disk_num; printf("input diak_num:\n"); scanf("%d",&disk_num); hanoi(disk_num,'A','B','C'); return 0; }