0 0

一道面试题5

一根很细的竹竿27cm,在3cm,7cm,11cm,17cm,23cm 处各有一只蚂蚁,蚂蚁每秒钟走1cm,不能停,可以向左走也可以向右走,当两只蚂蚁碰头后都掉头往回走,蚂蚁不能相互超越,问全部走完竹竿的最长时间和最短时间。 写出程序设计思路
2009年2月24日 11:01

2个答案 按时间排序 按投票排序

0 0

http://bill-end.iteye.com/admin/blogs/338708

2009年2月25日 18:15
0 0

首先设计一个蚂蚁类:
class Ant{
    boolean forword;//向前或向后
    int position;在竹竿上的位置
    boolean overPosition[]=new boolean[27];/**反正初始位置都是奇数,不会产生走半 厘米的情况.走过的厘米段就设为true*/
    public void goASciend();//爬行一秒,记录爬过的地方
}
在来就是竹竿了,扮演裁判的角色:
class Bamboo{
    List<Ant> antList;//5只小蚂蚁啊,慢慢爬呀爬
    public void go();/*哨声想起,大家快跑,大概结构就是一个死循环,每循环一次蚂蚁就跑一秒,跑完一秒后设置蚂蚁是否该改变方向和把跑完全程的蚂蚁清场.当全部走完后循环的次数也是完成的秒数**/
}

以为一开始蚂蚁们有两种选择,向前或向后,一共有2的5次方种情况,依次遍历吧,计算机就是用来做这种苦力计算的,HOHO

2009年2月24日 16:37

相关推荐

Global site tag (gtag.js) - Google Analytics