汉诺塔问题(Hanoi Tower)

C语言实现代码

#include
void Hanoi(char a,char b,char c,int n)  //定义函数设置from:a ,temp:b ,to:c  
{
    if(n==1)
    {
        printf("%c->%c\n",a,c);  //printf()函数传入变量a,c
    }
    else  
    {
        Hanoi(a,c,b,n-1);  //移动上层的n-1个碟子从a柱子移到b柱子,c为交换柱子
        printf("%c->%c\n",a,c);  //移动最底层的一个碟子
        Hanoi(b,a,c,n-1);
    }
}
void main()
{
    int a; 
    printf("input a number:");
    scanf("%d",&a);

    Hanoi('A','B','C',a);
}

函数Hanoi()功能将n个碟子从a移到c,b为交换的柱子。c也可以为交换柱子,可以指定from temp to

你可能感兴趣的:(汉诺塔问题(Hanoi Tower))