黑马程序员技术交流社区

标题: 编程测试题 [打印本页]

作者: 摄影勾魂    时间: 2013-12-26 15:31
标题: 编程测试题
本帖最后由 摄影勾魂 于 2013-12-26 15:32 编辑

有三个小的编程题,希望大家给一些好的建议,说下思路就行,如果有参考代码更好。不光是要完成功能,还得比较性能。
1. 不用“/”实现两个数相除。右移倒是可以实现整数相除,可是浮点数呢,要过要求一定的精度呢?


2. 扑克牌洗牌程序。所谓洗牌我觉得就是打乱它原有的排序,52张牌是固定的。问题是交换多少次顺序才能保证洗牌比较彻底?次数太少只能部分牌位置变了,次数太多可能会使某些交换过顺序的牌又换回原来的顺序……

3. 如果想编程实现 键盘组合键的功能该怎么做,比如按下 Ctrl + g 选中当前行这类的。

作者: 冯晓骏    时间: 2013-12-27 03:10
同问,我表示第一个也不会
第二个貌似在Set还是List中有个方法可以实现洗牌
第三个用GUI可以监听键盘事件吧,但是java的Gui个人表示太蛋疼。。
作者: 郭振华    时间: 2013-12-27 07:45
某种意义上说,除法是比较另类的减法,楼主可以试试从这方面试试。
第二个问题的话,数学问题,个人感觉,我数学是历史老师教的,抱歉。洗牌的彻不彻底有个度量,这个度量和洗牌次数之间有一定的关联,呵呵,
第三个问题的话,就像楼上说的,可以参考一下jui,肯定有组合监听。个人实现的话,无非就是对ctrl做个特殊映射,期待下一个按键就是了。
楼主很有想法,我邮箱toohardforname@gmail.com

作者: 摄影勾魂    时间: 2013-12-29 13:21
冯晓骏 发表于 2013-12-27 03:10
同问,我表示第一个也不会
第二个貌似在Set还是List中有个方法可以实现洗牌
第三个用GUI可以监听键盘事件吧 ...

谢谢兄弟,下去之后在这些方面我还得巩固巩固
作者: 摄影勾魂    时间: 2013-12-29 13:26
郭振华 发表于 2013-12-27 07:45
某种意义上说,除法是比较另类的减法,楼主可以试试从这方面试试。
第二个问题的话,数学问题,个人感觉, ...

谢谢,前两个问题主要在效率和精度。最后一个问题有点懵,可能得和操作系统结合起来,用到底层的一些东西,再转换成虚拟按键,ASCII码啥的。我下去再看看。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2