读书-算法《程序设计导引及在线实践》-简单计算题2:棋盘上的距离
题目:棋盘上的距离
求国际象棋中王、后、车、象从起始位置到目标位置所需的最少步骤。
行走规则如下:
王:横、竖、斜都可以走,但每步只能走一格。
后:横、竖、斜都可以走,但每步格数不限。
车:横、竖都可以走,不能斜着走,每步格数不限。
象:只能斜着走,格数不限。
我没有下过国际象棋,但题目中这四种角色的行走规则。把题目翻译一下,在一个8*8 的矩阵里面,按照给定的规则从一个点到另一个点的最近路径,好像也不用翻译,题目就是这么说的。
代码实现如下:
#include <stdio.h> #include <math.h>void main() {int ncase, i;scanf("%d",&ncase);for(i = 0; i < ncase; i++){char begin[3], end[3];/*这里定义为3,考虑到了还要存入字符串结束符'\0'*/int x, y;scanf("%s %s",begin, end);x = abs(begin[0] - end[0]);y = abs(begin[1] - end[1]);if (0 == x && 0 == y){printf("0 0 0 0\n");}else{/*steps of king*/if (x < y){printf("%d ", y);}else{printf("%d ", x);}/*steps of queen*/if (x == y || 0 == x || 0 == y){printf("1 ");}else{printf("2 ");}/*steps of rook*/if (0 == x || 0 == y){printf("1 ");}else{printf("2 ");}/*steps of bishop*/if (abs(x-y)%2 != 0){printf("Inf\n");}else if(x == y){printf("1\n");}else {printf("2\n");}}} }
转载于:https://www.cnblogs.com/redkoodoo/p/3763637.html
读书-算法《程序设计导引及在线实践》-简单计算题2:棋盘上的距离相关推荐
- 读书-算法《程序设计导引及在线实践》-简单计算题5:装箱问题
问题: 问题分析:主要考虑3*3的产品问题,结合实现的代码想一下,或则是想一下再结合代码 编一下代码: #include <stdio.h> void main() {int N, a, ...
- 程序设计导引及在线实践_学院经纬计算学院程序设计基础与实验入选首批国家级一流本科课程...
近日,教育部公布首批国家级一流本科课程认定清单,计算机与计算科学学院颜晖教授负责,张高燕.张泳.王云武.柳俊老师参与的<程序设计基础与实验>入选"线上线下混合式一流课程" ...
- 【摘录】《程序设计导引及在线实践》之排列
问题描述 大家知道,给出正整数n,则1 到n 这n 个数可以构成n!种排列,把这些排列按照从 小到大的顺序(字典顺序)列出,如n=3 时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2 ...
- 算法与程序设计_算法与程序设计入门-简单计算题1
在这里我们直接把题目抽离成顶点和边来描述,就不贴原题以避免引起不必要的解释. 问题描述:现在有一个简单无向图,且每个顶点最多与其他顶点之间连接m条边,现在有n个顶点,问最多能在各顶点之间连接多少条边? ...
- c语言程序设计方法及在线实践课后答案,c语言程序设计实践习题参考答案(西南师范大学出版社).doc...
附录 习题参考答案 ※ 2.4 设计性实验中的(3)小题参考答案 //用户登录程序 #include "stdio.h" #include "string.h" ...
- C语言程序设计:数组题和简单计算题
编写程序求长方形的面积,其中长方形的长和宽用scanf函数输入,结果去小数点后两位. 代码: #include<stdio.h> int main(){float s,l,w;//输入长方 ...
- ACM简单计算题-装箱问题
问题描述 一个工厂制造的产品形状都是长方体,它们的高度都是 h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. 这些产品通常使用一个 6*6 ...
- C++程序设计:原理与实践(进阶篇)16.1 标准库算法
摘要 Programming: Principles and Practice Using C++, Second Edition 算法和映射 理论上,实践是简单的. --Trygve Reenska ...
- 神策数据算法专家:推荐系统的实践与思考(下)
本文内容来自神策数据<智能推荐--应用场景与技术难点剖析>闭门会分享内容整理,分享者为神策数据算法专家胡士文,分享主题为<推荐系统的实践与思考>,前面我们介绍了算法和数据部分( ...
- PPT 下载 | 神策数据算法专家:推荐系统的实践与思考(下)
本文内容来自神策数据<智能推荐--应用场景与技术难点剖析>闭门会分享内容整理,分享者为神策数据算法专家胡士文,分享主题为<推荐系统的实践与思考>,前面我们介绍了算法和数据部分( ...
最新文章
- 如何将一个列表当作元组的一个元素
- 微信小程序学习笔记(4)--------框架之逻辑层
- 分析时间复杂度和空间复杂度(一级)
- 5.7.22mysql charset_Mysql5.7.22 坑爹的 `character_set_database`
- 如何Exchange移动数据库文件(一)
- matlab 多文件编程,是否有可能在MATLAB中为每个文件定义多个函数,并从该文件外部访问它们?...
- py学习,列表,判断,循环
- Android之IPC机制
- mysql忘记密码恢复
- kgtp linux内核调试
- svn增量打包部署_超详细的jenkins持续集成工作原理、功能、部署方式等介绍
- oracle习题-emp表查询练习
- sscanf函数用法详解_「MOS考点详解」一道例题详解GETPIVOTDATA函数的用法
- windows下ulipad开发环境安装
- PHP工具箱无法启动Mysql问题
- Python爬虫突然提取不出信息了,返回的是空列表的解决办法
- 望远大光圈拍风景的魅力--不破不立系列(1)
- 倾斜摄影技术下打造的三维景区 [转]
- H3C交换机与cisco交换机对接配置案例和注意事项
- 用python整个活(3)——生日悖论:birthday paradox
热门文章
- VB.Net视频教程和VBA简单介绍下载
- 文本文档html乱码,文本文档乱码怎么办?电脑文本文档乱码解决方法
- java 实现base64编码的三种方式、各方式性能比较、最后给出最优工具类 小白实操记录
- VB程序设计算机,VB编程:编写一个过程,用来计算并输出 S=1+1/2+1/3+……+1/100 的值。...
- 【Android】【移动应用开发】基础知识
- android viewflipper 动画,Android ViewFlipper动画
- 使用FlashFTP上传文件到指定服务器
- Go语言精进之路:你知道什么是Go语言编程思维吗?
- 办公、学习不得不收藏的十个网站,有了它效率至少提升十倍
- sqlmap 使用教程