汉诺塔递归实现
#include <stdio.h>
//汉诺塔递归实现
void move(int n,char a,char b,char c)
{
    if (n == 1)
        printf("\t%c->%c \n",a,c);  //一个盘子直接从a挪到c
    else
    {
        move(n-1,a,c,b);             //把n-1个盘子从a,通过c移动到b
        printf("\t%c->%c \n",a,c); //把a上的最后一个盘子移动到c上,实现了最大盘子放下面
        move(n-1,b,a,c);            //把n-1个盘子从b,通过a移动到c
    }
}
int main()
{
    int sum;
    printf("请输入盘子个数:");
    scanf("%d",&sum);
    printf("汉诺塔移动路径:\n");
    move(sum,'a','b','c');
    return 0;
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号