社区
Java SE
帖子详情
面试题 求助 高手请进!!!
龙胜LONGAIN
2012-02-28 03:25:41
有一种小虫,每隔两秒钟分裂一次。分裂后的两只新的小虫经过两秒钟后又会分裂。如果最
初某瓶中只有一只小虫,那么两秒后变两只,再过两秒后就变四只……两分钟后,正好满满
一瓶小虫。现在这个瓶内最初放入两只这样的小虫。
问:经过多少时间后,正巧也是满满的一瓶?
那位高手帮忙给个解题思路和Java解题算法代码。
...全文
2764
82
打赏
收藏
面试题 求助 高手请进!!!
有一种小虫,每隔两秒钟分裂一次。分裂后的两只新的小虫经过两秒钟后又会分裂。如果最 初某瓶中只有一只小虫,那么两秒后变两只,再过两秒后就变四只……两分钟后,正好满满 一瓶小虫。现在这个瓶内最初放入两只这样的小虫。 问:经过多少时间后,正巧也是满满的一瓶? 那位高手帮忙给个解题思路和Java解题算法代码。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
82 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
beannian
2012-03-07
打赏
举报
回复
处理16位以上的有效位用BigDecimal,这是考点应该,答案不重要
Papaver
2012-03-07
打赏
举报
回复
第一次是1*2*2*2*2*2……
第二次是2*2*2*2*2*2……
每乘一次花费的时间是2秒,同样的量少乘一次2说明少用两秒。
他们考得应该就是基本数据类型的最大值,用int肯定不行。就是判断long是否可以。
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1。
这次运算最大的是2的60次方,所以用long应该可以。
码无边
2012-03-07
打赏
举报
回复
智力题
zuobangning
2012-03-06
打赏
举报
回复
一只变成两只的时候话了两秒钟,那么从两只开始的时候就减去开始的两秒不就好了啊!正解就是118秒
zuobangning
2012-03-06
打赏
举报
回复
一只变成两只的时候话了两秒钟,那么从两只开始的时候就减去开始的两秒不就好了啊!正解就是118秒
BeeColdfish
2012-03-05
打赏
举报
回复
个人愚见:本问题条件:虫子个数;所需答案:充满整个瓶子的时间;
显而易见:
初始虫子个数 需要时间
2^0个 ----- 2*60秒
2^1个 ----- 2*59秒
2^2个 ----- 2*58秒
2^3个 ----- 2*57秒
.
.
.
2^59个 ----- 2*1秒
2^60个 ----- 2*0秒
这时候,答案显而易见,我们看下二进制数据对应情况:
1 1 2*60秒
2 01 2*59秒
3 11 2*59秒
4 100 2*58秒
5 101 2*58秒
6 110 2*58秒
7 111 2*58秒
8 1000 2*57秒
结论是:初始虫子数的二进制位数 + 所需秒数 / 2 = 61
而初始虫子数的二进制位数可以通过64-Long.numberOfLeadingZeros(虫子个数)得出;
故时间为122 - 2*初始虫子数二进制位数。具体方法如下:
/**
* 初始num个虫子的情况下,获取充满整个瓶子需要的时间
* @param num 初始虫子数
* @return 需要时间
*/
private static int getTime(long num){
int i = 64-Long.numberOfLeadingZeros(num);//首先获取初始虫子数的位数
return 122 - (i << 1);//i左移一位,即i*2
}
并且整个瓶子最多有2^60个虫子,所以只用long完全可以解决问题。
allan_chan
2012-03-05
打赏
举报
回复
118
lwlianglove2
2012-03-05
打赏
举报
回复
你妹啊,这明明就是高中生物题,我做过类似的!
陌上拾年
2012-03-05
打赏
举报
回复
面试题伤不起。。。
superhill
2012-03-05
打赏
举报
回复
2^60 = 2*2^n
n=59
t=n*2=118
什么都不留
2012-03-04
打赏
举报
回复
118 正确。。。
ihrthk
2012-03-04
打赏
举报
回复
[Quote=引用 10 楼 llhwin2010 的回复:]
使用程序写的时候要注意int或者double越界的问题,int是绝对不可以的,double估计也不可以吧,我感觉这个题考的就是这个问题,怎么解决那个越界的问题!
哪位大神给解决一下啊
[/Quote]
用BigInteger ,无限位,用new BigInteger(String str)构造,你懂的。
songhuanle
2012-03-04
打赏
举报
回复
若是把分裂改为繁衍,求解!!!!!!
laoyao0228
2012-03-04
打赏
举报
回复
晚了 我脑子太废了 根本想不出来 我还傻呵呵的计算呢……
shizhibuyu20009
2012-03-03
打赏
举报
回复
分裂完你就没在了啊。它已经变成两个。[Quote=引用 8 楼 forgetsam 的回复:]
引用 5 楼 chenxinhui741 的回复:
引用 1 楼 chc464954573 的回复:
2分钟 120秒
现在最初2只,也就是放入1只 2秒中之后的情况。也就是120 - 2,118秒
。
误解,这个起码没考虑起初那1只虫子,以及它繁衍的虫子,所占的空间
你就是会被这种题目考住的人。
[/Quote]
pupingpp
2012-03-03
打赏
举报
回复
越界的话就用BigDecimal类啊,可以解决任意长度的浮点数的,正解我觉得是118秒
jackasdn
2012-03-03
打赏
举报
回复
118s正解
walkman_22
2012-03-03
打赏
举报
回复
队列,WHILE循环。鉴定完毕。
nongchao2011
2012-03-03
打赏
举报
回复
两次分裂中瓶子中的虫子的总数是相同的,只是开始分裂的时候初始值不一样,一个设定的是1,另一个设定的是2;两次的递增都是按照2的幂开始递增的,下面程序供大家参考,就像在解数学方程,拙劣之处望大家指正
public class Insect {
/**
* @param args
*/
public static double insectNum(int x,int second){//计算虫子总数
int temp=0;
double insectNumber=x;
while(temp<(second/2)){
insectNumber=insectNumber*2;
temp++;
}
return insectNumber;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//两次分裂中瓶子中的虫子的总数是相同的只是,只是开始分裂的时候初始值不一样,一个设定的是1,另一个设定的是2;
//两次的递增都是按照2的幂开始递增的
double b=insectNum(1,120);//计算总数
double a=2;
int j=0;//记录分裂的次数
while(a!=b){
a=a*2;
j++;
}
System.out.println(j*2);
}
}
robin_wang_0826
2012-03-03
打赏
举报
回复
大家说的都很热闹呀,可之后答案 ,也不知道真假
加载更多回复(60)
Java高频
面试题
【课程介绍】 很多人面试前都会罗各种
面试题
。这些面试资料数量众多,但内容杂,系统性不强。最重要的是很多知识点如果不结合讲解,有些重点内容理解的难度偏大。如果下一次遇到面试,又要重新搜集资料,很多知识要...
『程序员』 [求职招聘]软件测试
面试题
,
高手
帮忙!!
『程序员』 [求职招聘]软件测试
面试题
,
高手
帮忙!! 作者:janny161 提交日期:2005-12-8 19:32:18楼主 有100个金币,其中有一个比较轻。给你一个天平,怎样用四次天平确认出哪个金币轻? 作者:ViviHCW 回复...
HR
面试题
(史上最全、持续更新、吐血推荐)
疯狂创客圈 经典图书 : 《Netty Zookeeper Redis 高并发实战》 面试必备 + 大厂必备 + 涨薪必备 疯狂创客圈 经典图书 : 《SpringCloud、Nginx高并发核心编程》 面试必备 + 大厂必备 + 涨薪必备 资源宝库: Java...
CSDN论坛面试经验和
面试题
集锦
CSDN论坛面试经验和
面试题
集锦 面试经验 综合/算法 C/C++/VC MS-SQL Server Java .NET技术 Oracle 其他
高薪程序员&
面试题
精讲系列02之面试经验剖析
我前面给各位说过,截止到...接下来在进行
面试题
讲解之前,一一哥会把自己总结出来的面试经验传授给你,并结合几个经典的面试案例,给各位进行分析梳理,希望能对即将找工作的你,有所启发和激励。 一. 关于面试 ...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章