直接放代码吧。。。。
void doTowers(int n, char s, char am, char e) {//s:起点 am:中间柱 e:终点
if (n == 1)
printf("1: %c -> %c\n", s, e);
else {
doTowers(n - 1, s, e, am); //先将n-1个盘子借助Z从X挪到Y,为了方便将最下面的盘子直接挪到目的针
printf("%d: %c -> %c\n", n, s, e); //把最下面的盘子直接从源挪到目的
doTowers(n - 1, am, s, e); //把移到Y针上的n-1个盘子再挪到最终目的针Z上
}
}
Comments | 0 条评论