华侨大学首届程序设计大赛决赛试题第一题:汉诺塔(hanoi)是一种古老的游戏,用来锻炼人的思考能力
这种游戏中有三根柱子A,B,C,然后有一组大小不同的圆盘挂在柱子上,圆盘可以从一个柱子移动到另一个柱子,最初所有的圆盘都在柱子A上,并且上面的圆盘按照大小顺序,下面圆盘比上面的圆盘大
要求把所有的圆盘都移动到柱子C上,移动过程中圆盘只能放在柱子A、B、C上面,并且小的圆盘始终在大的圆盘之上
输入:要求用户用键盘输入圆盘的个数N输出:在屏幕上显示移动的过程,每行表示一个移动,包括要移动的圆盘号码(最小的圆盘为1,第二小的圆盘为2,……,最大的为N)、在移动之前这个圆盘所处的柱子(A,B,C中的一个)、在移动之后这个圆盘所处的柱子(A,B,C中的一个)
这三者彼此之间用空格隔开
输入输出举例:输入:3输出:1AC2AB1CB3AC1BA2BC1AC第二题:本题是一个人和机器人追逐游戏的一个模块,首先需要读入一个棋盘文件表示当前的游戏进度,棋盘是一个文本文件,里面只有下面提到的各种字符和空格:棋盘中有一个“人”由用户控制(棋盘中用符号”H”表示);棋盘中有多个“机器人”由计算机控制(棋盘中用符号”R”表示活的机器人,用符号”*”表示死的机器人);棋盘的上下边线用”-”表示;棋盘的左右边线用”|”表示;棋盘的四个角用”+”表示;棋盘中的空格表示对应的位置没有任何人和机器人
这个棋盘一定是长方形的,下面是一个输入文件的例子:人可以向上、下、左、右、左上、右上、左下、右下的任何一个方向移动一格
之后每个机器人会自动向人的方向移动一格:如果机器人处于人的上方就向下移动如果机器人处于人的下方就向上移动如果机器人处于人的左方就向右移动如果机器人处于人的右方就向左移动如果机器人处于人的左上方就向右下移动如果机器人处于人的左下方就向右上移动如果机器人处于人的右上方就向左下移动如果机