昨天去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笔试题面经整理
笔试部分主要包括选择题、编程题和写作题三个部分。选择题有30多道,答对得分,答错需要倒扣分数,每道题都很有难度,考察了算法、C/C++基础、面向对象、逻辑等多方面的知识。编程题有4个,2个容易,2个困难,题目...
此次笔试共分为四个部分:信息收集、多项选择题、编程题以及开放性问题。考试时间限定为3小时,不允许使用任何电子设备辅助答题。 #### 信息收集部分解析 这一部分主要是为了收集应聘者的个人偏好信息,包括工作...
EMC2009校园招聘笔试题答案,c++实现,可编译运行
EMC面试笔试必备的知识点涵盖了多个方面,包括但不限于以下几个关键领域: 1. 存储基础: - 存储层次结构:理解主存、辅助存储和外部存储之间的区别,以及它们如何协同工作以提高数据访问效率。 - 存储类型:了解...
【压缩包子文件的文件名称列表】:"华为笔试"可能是包含所有笔试题目的文档,可能是一个PDF文件或者一系列的文本文件,涵盖了不同类型的题目,如选择题、填空题、编程题等。文件中可能还包含了详细的解题步骤和解释...
同时,还有对应聘者提供的招聘流程、笔试题、面试经验、面试题目和面试感受等信息。这些内容对于想要了解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的数字,并且每个数字占一行。此外,还有一些特殊的限制条件: - 只允许有一个语句,即一...