题目描述: 在国际象棋中,马的走法与中国象棋类似,即俗话说的“马走日”,下图所示即国际象棋中马每一步能到达的格子(箭头所指为每步到达位置)。 现有一200 * 200大小的国际象棋棋盘,棋盘中仅有一个马,给定马的当前位置和目标位置,求出马最少需要多少跳才能从当前位置到达目标位置。 输入格式:已有文件txt格式 文件里每一行有四个以空格分隔的整数,分别表示马当前位置及目标位置的横、纵坐标(Xs,Ys)和(Xe,Ye)。坐标由0开始。 文件输入样例: 1 1 2 1 1 5 5 1 输入说明 第一行:马的当前位置为(1,1),目标位置为(2,1)。 第二行:马的当前位置为(1,5),目标位置为(5,1)。 输出: 文件里每一行第一个数字为1个整数,即马从当前位置跳到目标位置最少的跳数,然后以空格隔开,输出对应的最短路径坐标,坐标格式为(X, Y),每个坐标之间以空格隔开。所有路径输出后以回车换行。 输出样例: 3 (1, 1) (3, 2) (4, 0) (2, 1) 4 (1, 5) (2, 3) (4, 2) (6, 3) (5, 1) 第一行:马需要跳3次才可以从(1,1)到(2,1),对应的路径为(1, 1) (3, 2) (4, 0) (2, 1)。 第二行:马需要跳4次才可以从(1,5)到(5,1),对应的路径为(1, 5) (2, 3) (4, 2) (6, 3) (5, 1)。
解题:对于这类问题,可以用广度优先BFS,或者深度