思路分析:
将片按大小依次编号1,2,3可以n,由1到n号金片组成的塔高度为n的塔,可以看作是高度为n-1的塔下面压了一个大的金片n
#include <stdio.h>
vodi hanio(int n, char a,char b,char c)
{
if(n>0)
{
if(n==1)
{
printf(“move %d from %c to %c \n” , n,a,b); //若只有一片直接移
}
}else{
hanio(n-1,a,c,b); //先将源柱子A的n-1片,移到柱子C(利用柱子B)
printf(“move %d from %c to %c \n” , n,a,b); //把A的片n移到B
hanio(n-1,c,b,a); //把C的n-1片移到B(利用柱子A)
}
int main()
{
int n;
printf(“请输入汉诺塔的层数:”);
scanf(“%d” , &n);
hanio(n,’A’,’B’,’C’);
return 0;
}
参考书:数据结构 C 语言