#include<stdio.h>
/*
time:2015/6/28
*/
//递归实现汉诺塔,把n个盘子从柱子a借助b移动到c
void hani(int n, char a, char b, char c)
{
if(n == 1) //递归结束条件
{
printf("把第%d个盘子从%c移动到%c\n", n, a, c);
}
else
{
hani(n-1, a, c, b); //把n-1个盘子从柱子a借助c移动到b
printf("把第%d个盘子从%c移动到%c\n", n, a, c);
hani(n-1, b, a, c); ////把n-1个盘子从柱子b借助a移动到c
}
}
int main(void)
{
int n;
printf("请输入盘子的个数:\n");
scanf("%d", &n);
hani(n, 'x', 'y', 'z');
getch();
}