#include <stdio.h>
#include <stdlib.h>
void move(char name1,char name2,int n)
{
printf("第%d个圆盘:%c-->%c\n",n,name1,name2);
}
void hanoi(int n,char A,char B,char C)//将n个圆盘借助B盘从A盘移动到C盘
{
if(n==1)
move(A,C,n);
else
{
hanoi(n-1,A,C,B);//将n-1个圆盘借助C盘从A盘移动到B盘
move(A,C,n);//将柱子上最后一个圆盘移动到C
hanoi(n-1,B,A,C);//将n-个圆盘借助A盘从B盘移动到C盘
}
}
int main()
{
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');
}
汉诺塔的递归实现(C语言)
于 2022-11-07 09:51:44 首次发布