昨天去EMC面试,有个题没写出来,只写了个思路,想和大家讨论下
题目是这样的:7*8的一个棋盘,即有56个格子。格子上随机放上小球。小球只可以做水平或者垂直方向运动。
小球相互可以碰撞,碰撞的情况为:
如果两个小球相邻,比如Ball(1, 3)和Ball (1, 4),这时远处的小球Ball(1, 1)移动过来撞到Ball(1, 3),Ball(1, 1)应该停止在(1, 2)位置,同时Ball(1, 3)把碰撞传递给Ball(1, 4)后,Ball(1,3)仍然不动, Ball(1, 4)被撞开,以此类推。
Ball(1, 1) => Ball(1, 3), Ball(1, 4)
如果一个方向上没有其他的小球存在,那么不允许直接将小球沿着这个方向直接移出棋盘。
例如下图中,G表示小球,那么(2,2)位置上的小球只能向右或向下移动,因为(2, 2)位置的小球的上方和左方都没有小球,规则不允许把(2, 2)位置的小球沿上、左方移动从而直接移出棋盘。同理,(4, 2)位置的小球只允许向左移动。
### # # # #
#G # G # # #
# # # # # # #
# G # # # # #
# # # # # # #
# # # # # # #
# # # # # # #
# # # # # # #
两个球相邻是不能动的。中间一定要有至少一个的空格。
当碰撞过后,只有一个球在棋盘上为有解。否则无解。
每次选择任意一个球开始运动,碰撞完成后,可以选择任意剩下小球开始运动。
请写出一个程序,任意初始化棋盘上的小球,然后判断是否有解,有解打印出球移动步骤,否则输入无解。
分享到:
相关推荐
EMC笔试题面经整理EMC笔试题面经整理EMC笔试题面经整理
此次笔试共分为四个部分:信息收集、多项选择题、编程题以及开放性问题。考试时间限定为3小时,不允许使用任何电子设备辅助答题。 #### 信息收集部分解析 这一部分主要是为了收集应聘者的个人偏好信息,包括工作...
而编程题部分则有四个,其中两个难度较低,另外两个则相当具有挑战性。作者举了一个例子,即在给出的一个单向链表中找出倒数第k个节点,这要求应聘者必须具备扎实的编程基础和高效解决问题的能力。 写作题要求用...
EMC2009校园招聘笔试题答案,c++实现,可编译运行
EMC面试笔试必备的知识点涵盖了多个方面,包括但不限于以下几个关键领域: 1. 存储基础: - 存储层次结构:理解主存、辅助存储和外部存储之间的区别,以及它们如何协同工作以提高数据访问效率。 - 存储类型:了解...
这份“北京华为经典笔试题(附答案)”汇集了华为笔试中出现频率较高的试题,涉及的领域包括但不限于编程、网络、操作系统、数据结构和算法。这些试题的设计既符合华为公司对员工技术素养的高要求,又具有一定的难度...
同时,还有对应聘者提供的招聘流程、笔试题、面试经验、面试题目和面试感受等信息。这些内容对于想要了解EMC招聘流程和面试技巧的求职者非常有价值。 通过上述知识点,我们可以看出EMC是一个在存储技术领域具有深厚...
【EMC2007笔试题】涉及到的是EMC公司2007年针对软件质量工程师一职的招聘笔试环节。EMC是一家知名的全球信息技术公司,主要提供数据存储、信息安全、云计算等解决方案。在这样的笔试中,考生可以期待遇到与软件测试...
【EMC2010年校园招聘笔试题】是一份极具价值的历史资料,它记录了全球知名存储解决方案提供商EMC在2010年面向校园招聘时所使用的测试题目。对于那些希望进入EMC工作的求职者,这份资料具有很高的参考价值,能够帮助...
根据给定的EMC 2007应届生笔试题的内容,我们可以从中提取出一些重要的知识点,并对其进行详细的解析。 ### 一、考试说明与规则 #### 1. 考试时间 - 考生需在**3小时内**完成整个考试。 #### 2. 考试结构 - **总...
1. **编程题限制**: 在提供的代码示例中,题目要求编写一个函数`p(int i, int N)`,该函数要在一行内完成输出i到N以及N到i的数字,并且每个数字占一行。此外,还有一些特殊的限制条件: - 只允许有一个语句,即一...