问题描述
国际象棋的棋盘是黑白相间的 8 * 8 的方格,棋子放在格子中间。如图
国际象棋棋盘
王、后、车、象的走子规则如下:
- 王:横、直、斜都可以走,但每步限走一格。
- 后:横、直、斜都可以走,每步格数不受限制。
-
车:横、竖均可以走,不能斜走,格数不限。
-
象:只能斜走,格数不限。
写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置
所需的最少步数
输入数据
第一行是测试数据的组数 t(0 <= t <= 20)。以下每行是一组测试数据,每组包括棋盘
上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,
字母从"a"到"h",数字从"1"到"8"。
输出要求
对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出
"Inf".
输入样例
2
a1 c3
f5 f8
输出样例
2 1 2 1
3 1 1 Inf
#include <stdio.h>
#include <math.h>
void caculateKing(int x, int y);
void caculateQueen(int x, int y);
void caculateRook(int x, int y);
void caculateBishop(int x, int y);
int main(void)
{
printf("Please input a number between 1-20:");
int i, nCases ;
scanf("%d", &nCases);
for(i = 0; i < nCases; i++){
char begin[5], end[5];
scanf("%s%s",begin,end);
int x, y;
x = abs(begin[0] - end[0]);
y = abs(begin[1] - end[1]);
if(x == 0 && y == 0)
printf("0 0 0 0");
else
{
caculateKing(x,y);
caculateQueen(x,y);
caculateRook(x,y);
caculateBishop(x,y);
}
}
return 0;
}
void caculateKing(int x, int y)
{
if(x < y)
printf("%d ", y);
else
printf("%d ", x);
}
void caculateQueen(int x, int y)
{
if(x == y || x == 0 || y == 0)
printf("1 ");
else
printf("2 ");
}
void caculateRook(int x, int y)
{
if(x == 0 || y == 0)
printf("1 ");
else
printf("2 ");
}
void caculateBishop(int x, int y)
{
if(abs(x - y) % 2 != 0)
printf("Inf\n");
else if(x == y)
printf("1\n");
else
printf("2\n");
}
- 大小: 37.5 KB
分享到:
相关推荐
需要杰哥讲解的毕设js代码
但根据文件名,我们可以推测“杰哥”可能是资料的作者或提供者,而“两套卷”可能指的是两套数学练习题或模拟试卷,分别针对不同的数学领域。 【标签】虽然为空,但如果我们为这个文件添加标签,可能包括“数学”、...
C++自制小游戏《杰哥和阿伟》源码(cpp) C++小游戏,由哔哩哔哩的梗制作而成,切勿当真哦~ 游戏内行为请勿模仿! 原创小游戏,请勿转载或整改~ 记得关注@Ender_momo,短时间内将发布制作过程
前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; ...
计算机组成原理期末题,计算机组成原理期末常见考试题大全 计算机组成原理期末题,计算机组成原理期末常见考试题大全 计算机组成原理期末题,计算机组成原理期末常见考试题大全 计算机组成原理期末题,计算机组成...
有跟我一样看不懂代码,只能盲抄来理解的吗,杰哥看到了莫生气我自己现在真写不了好了,今天的案例与while语句有关
笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题...
全国大学生数学建模大赛真题:2020年全国大学生数学建模竞赛 B 题 - “地下水污染源识别”; 全国大学生数学建模大赛真题:2020年全国大学生数学建模竞赛 B 题 - “地下水污染源识别”; 全国大学生数学建模大赛真题...
计算机类专业部分课后习题与详细解答分析.docx 计算机类专业部分课后习题与详细解答分析.docx 计算机类专业部分课后习题与详细解答分析.docx 计算机类专业部分课后习题与详细解答分析.docx 计算机类专业部分课后习题...
10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx ...
电赛历年真题查找与经典题目解析+编程知识+技术开发; 电赛历年真题查找与经典题目解析+编程知识+技术开发; 电赛历年真题查找与经典题目解析+编程知识+技术开发; 电赛历年真题查找与经典题目解析+编程知识+技术...
本人收集的几套百度笔试题。 doc格式,需要找工作的可以看看
例如,在管理节点上设置Monitor,OSD节点上启动OSD守护进程,元数据节点上运行MDS,最后在客户端节点上安装Ceph客户端,以便访问存储集群。配置过程中,需要定义存储池、设置副本数量、创建OSD布局(CRUSH Map),并...
美赛历年真题查找与经典题目解析+编程知识+技术开发; 美赛历年真题查找与经典题目解析+编程知识+技术开发; 美赛历年真题查找与经典题目解析+编程知识+技术开发; 美赛历年真题查找与经典题目解析+编程知识+技术...
ACM历年真题查找与经典题目解析+编程知识+技术开发; ACM历年真题查找与经典题目解析+编程知识+技术开发; ACM历年真题查找与经典题目解析+编程知识+技术开发; ACM历年真题查找与经典题目解析+编程知识+技术开发;...
蓝桥杯历年真题查找与经典题目解析+编程知识+技术开发; 蓝桥杯历年真题查找与经典题目解析+编程知识+技术开发; 蓝桥杯历年真题查找与经典题目解析+编程知识+技术开发; 蓝桥杯历年真题查找与经典题目解析+编程知识...
前端面试题:前端开发面试题大全,涵盖了HTML、CSS、JavaScript、前端框架和工具等方面; 前端面试题:前端开发面试题大全,涵盖了HTML、CSS、JavaScript、前端框架和工具等方面; 前端面试题:前端开发面试题大全,...
综上所述,Linux 环境下的开发项目涉及多个环节的工作,从软件安装到环境配置,再到项目源码管理和运维调试,每一步都需要仔细规划和实施。通过遵循本指南中的建议,可以有效地提升开发效率并保证项目的高质量完成。
通过这些面试题的分析,我们可以认识到,成为一名优秀的C/C++程序员,不仅需要深厚的编程基础,还需要敏锐的问题洞察力和严谨的编程习惯。面试不仅是技术的比拼,更是思维方式和问题解决能力的体现。在准备面试的...
Python 深度学习 - Pandas Pandas 是 Python 中一个流行的数据分析库,提供了高效、灵活的数据结构和数据分析工具。下面是对 Pandas 的详细介绍: 对象的创建 Pandas 中有两种主要的数据结构:Series(一维对象)...