日期:2014-05-20  浏览次数:21059 次

面试题 求助 高手请进!!!
有一种小虫,每隔两秒钟分裂一次。分裂后的两只新的小虫经过两秒钟后又会分裂。如果最
初某瓶中只有一只小虫,那么两秒后变两只,再过两秒后就变四只……两分钟后,正好满满
一瓶小虫。现在这个瓶内最初放入两只这样的小虫。

问:经过多少时间后,正巧也是满满的一瓶?

那位高手帮忙给个解题思路和Java解题算法代码。

------解决方案--------------------
2分钟 120秒

现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒


------解决方案--------------------
虫子的数目是1-2-4-8-16-...这样变化的,第一次是从0秒开始计时,第二次相当于从第2秒开始计时,时间应该是118,这是我的想法,仅作参考
------解决方案--------------------
探讨

2分钟 120秒

现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒



------解决方案--------------------
楼上正解,这不就是个脑经急转弯啊?
------解决方案--------------------
探讨
2分钟 120秒

现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒



------解决方案--------------------
一只变成两只的时候话了两秒钟,那么从两只开始的时候就减去开始的两秒不就好了啊!正解就是118秒!
------解决方案--------------------
public static void main(String args[]) {
get(2,0);
}

public static void get(int starNum,int second){
if(second<120){
if(second%2==0){
starNum += starNum*2;
second += 2;
System.out.println("第"+second+"秒,有"+starNum+"条虫子!");
get(starNum,second);
}
}
}
------解决方案--------------------
探讨
引用:
2分钟 120秒

现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒



误解,这个起码没考虑起初那1只虫子,以及它繁衍的虫子,所占的空间

------解决方案--------------------
用BigDecimal呗。
------解决方案--------------------
楼上正解!
------解决方案--------------------
学习了 楼主正解
------解决方案--------------------
有意思,逆向思维

------解决方案--------------------
[Quote=引用:]
引用:
2分钟 120秒

现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒



误解,这个起码没考虑起初那1只虫子,以及它繁衍的虫子,所占的空间
[/Quote]
这题是说1个分裂为2个,不是说1个生下了2个,所以一秒后总数是2个而不是3个.
------解决方案--------------------
118秒
------解决方案--------------------
现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒


------解决方案--------------------
探讨
[Quote=引用:]
引用:
2分钟 120秒

现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒



误解,这个起码没考虑起初那1只虫子,以及它繁衍的虫子,所占的空间

------解决方案--------------------
探讨

使用程序写的时候要注意int或者double越界的问题,int是绝对不可以的,double估计也不可以吧,我感觉这个题考的就是这个问题,怎么解决那个越界的问题!

哪位大神给解决一下啊

------解决方案--------------------
其实这个问题非常的简单,我面试的时候也被问到了,一只虫子两分钟能分裂满,120秒结束,我们不必算 两个虫子一直分裂下去,只需要从两只虫子分裂算起,所以 答案就是减少了第一次的分裂时间,所以是118秒,
------解决方案--------------------
探讨
引用:
[Quote=引用:]
引用:
2分钟 120秒