编程题
马走日 ## 题目描述 在中国象棋里,马的走棋要遵循“马走日”的规则。在本题中,给定棋子马的起始位置,以及一个目标位置,判定该棋子是否能走到该位置,如果能走到,最少步数是多少。(假设棋盘上只有一个棋子马,没有其他棋子) 如下图所示,中国象棋的棋盘为10行、9列,棋盘上的一个位置可以用行坐标和列坐标唯一地表示,例如下图中黑马所在的初始位置为(1,2)。 ![图片描述](https://doc.shiyanlou.com/courses/uid1791927-20220316-1647440374682) ## 输入描述 输入文件中包含多个测试数据。每个测试数据为4个整数,si sj di dj,前两个整数为马的初始位置,后两个整数为目标位置,si和di的范围是[1,10],sj和dj的范围是[1,9]。最后一行为4个0,代表输入结束。测试数据保证初始位置和目标位置不会是同一个位置。 ## 输出描述 对每个测试数据,如果能达到目标位置,输出最少步数;如果不能达到,则输出-1。 ## 样例输入 ```txt 1 2 8 9 1 8 2 4 0 0 0 0 ``` ## 样例输出 ```txt 6 3 ```
查看答案
赣ICP备20007335号-2