|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
void MoveTower(int num, char src, char dst, char trs);
说明:参数 num 为金片数,src、dst 和 trs 分别为起始柱、目的柱和过渡柱。若金片数大于 0,则函数将金片组成的汉诺塔由起始柱利用过渡柱最终搬到目的柱,否则什么也不做。
下面的程序,输入汉诺塔圆片的数量,输出移动汉诺塔的步骤。
裁判程序
#include <stdio.h>
void MoveTower(int num, char src, char dst, char trs);
int main()
{
int n;
char s, d, t;
scanf("%d %c %c %c", &n, &s, &d, &t);
MoveTower(n, s, d, t);
return 0;
}
答案:
void MoveTower(int num, char src, char dst, char trs)
{
if(num==1)
printf("%d: %c -> %c\n",src,dst,trs);
else{
MoveTower(num-1,src,trs,dst);
printf("%d: %c -> %c\n",num,src,dst);
MoveTower(num-1,trs,dst,src);
}
}
|
|