从左到右有A、B、C三根柱子,其中A柱子上 面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到 C柱子上去,期间只有一个原则:一次只能移到一个盘子且 大盘子不能在小盘子上面,求移动的步骤
#include <stdio.h>
int HanNuoTa(int n, char Src, char Dst, char Tmp)
{
if (1 == n)
{
printf("%c -> %c\n", Src, Dst);
}
else
{
HanNuoTa(n-1, Src, Tmp, Dst);
printf("%c -> %c\n", Src, Dst);
HanNuoTa(n-1, Tmp, Dst, Src);
}
return 0;
}
int main(int argc, const char *argv[])
{
int n = 0;
printf("请输入盘子的个数:\n");
scanf("%d", &n);
HanNuoTa(n, 'A', 'C', 'B');
return 0;
}
复制代码