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

c語言遞迴實現漢諾塔

程式碼不是自己寫的,copy資料結構書上的,看的懂,但是寫不出來。

//程式碼很簡潔,但卻是經典

#include <stdio.h>

int count =0;

void move(char x,int n,char y)
{
    count++;
}

// 從x開始,y做輔助塔,移動到z上 
void hanoi(int n,char x, char y, char z)
{
    if(n == 1)
    {
        move(x,1,z);    
    }
    else
    {
        hanoi(n-1,x,z,y);
        
        move(x,n,z);
        
        hanoi(n-1,y,x,z);    
    }    
}

int main()
{
    char a;
    char b;
    char c;
    hanoi(3,a,b,c);
    printf("共移動:%d",count);
    return 0;