京东2016笔试题
2016-04-08 21:18
120 查看
2016.年4月8日7点到9点考题,两个编程题,就做出这一个了,第二个没时间了,感觉第二个编程题还好,不是很难)
题目大致意思就是给定一个8×8的棋盘,给定两个点A,B,求从A到B需要走的最短步数,并打印最短路径。
走的每一步的方向可以为左(L)、右(R)、上(U)、下(D)、左下(LD)、左上(LU)、右下(RD)、右上(RU)。
确定A到B的路径时,优先走斜的的路径,然后走直的。
比如从(5,1)到(8,8)
需要的最短步数为7,
分别为右上、右上、右上、上、上、上、上。
即输入
51
88
输出
7
RU
RU
RU
U
U
U
U
分析:
全面考虑各种情况,只有斜线的、只有直线的、直线斜线都有的(优先打印斜线)。
提交的通过的代码如下:
题目大致意思就是给定一个8×8的棋盘,给定两个点A,B,求从A到B需要走的最短步数,并打印最短路径。
走的每一步的方向可以为左(L)、右(R)、上(U)、下(D)、左下(LD)、左上(LU)、右下(RD)、右上(RU)。
确定A到B的路径时,优先走斜的的路径,然后走直的。
比如从(5,1)到(8,8)
需要的最短步数为7,
分别为右上、右上、右上、上、上、上、上。
即输入
51
88
输出
7
RU
RU
RU
U
U
U
U
分析:
全面考虑各种情况,只有斜线的、只有直线的、直线斜线都有的(优先打印斜线)。
提交的通过的代码如下:
#include <stdlib.h> #include <iostream> using namespace std; int main() { string s; string t; while(cin >> s >> t) { char startx = s[0]; char starty = s[1]; char endx = t[0]; char endy = t[1]; int dis_x = endx - startx; int dis_y = endy - starty; int ans = abs(dis_x)> abs(dis_y)?abs(dis_x):abs(dis_y); string res; cout << ans << endl; //确定斜着走的方向 if(dis_x > 0 && dis_y > 0 ) res = "RU"; else if(dis_x > 0 && dis_y < 0) res = "RD"; else if(dis_x < 0 && dis_y > 0) res = "LU"; else if(dis_x < 0 && dis_y < 0) res = "LD"; //最短路径只有斜着走的情况 if(abs(dis_x) == abs(dis_y)) { for(int i = 0;i < abs(dis_x);i++) cout << res << endl; } //最短路径只有上下的方向 else if(dis_x == 0) { if(dis_y > 0) { for( int i = 0;i < ans ;i++) cout << "U" <<endl; } else { for( int i = 0;i < ans ;i++) cout << "D" <<endl; } } //最短路径只有左右的方向 else if(dis_y == 0) { if(dis_x > 0) { for( int i = 0;i < ans ;i++) cout << "R" <<endl; } else { for( int i = 0;i < ans ;i++) cout << "L" <<endl; } } //最短路径有直线,也有斜线的情况 else { int temp = abs(dis_x) - abs(dis_y); //题目要求优先走斜线 for(int i = 0;i< ans - abs(temp);i++) cout << res << endl; //然后计算直线 if(temp > 0) { if(dis_x > 0 ) { for(int i = 0 ;i< temp; i++) cout << "R" << endl; } else { for(int i = 0 ;i< temp ;i++) cout << "L" << endl; } } else { if(dis_y > 0 ) { for(int i = 0 ;i< abs(temp); i++) cout << "U" << endl; } else { for(int i = 0 ;i< abs(temp) ;i++) cout << "D" << endl; } } } } cout << "Hello world!" << endl; return 0; }
相关文章推荐
- 基于JavaScript实现仿京东图片轮播效果
- 为什么是刘强东
- 京东自然搜索排序白皮书:打算混京东的屌丝必看
- 京东白条宣布“独立”:正式启用baitiao.com
- 做京东运营2年的感悟
- 京东一直在亏,刘强东为什么还那么有钱?
- 这些年,京东刘强东打过的白条
- 刷单为什么越禁越多?阿里京东严打之下,卖家就会去买广告吗
- 用python编写的抓京东商品价格的爬虫
- 剖析云计算中的共享性数据库
- 京东高风险用户判定参考
- 京东与苏宁之争,用户体验的博弈
- [互联网冲击]网购打残 百丽叹没办法 传统行业该如何面对
- 正式投入工作中
- 新互联经济时代企业营销模式变革研讨会召开
- 分享一些免费接口
- 《老男孩》上映 “娱乐宝”投资电影进入回收期