A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在一个村里面有50个村民,每个村民都养了一条狗,已知这个村子一定有病狗,每个村民都有一把枪,
村民只能看别人的狗判断自己的狗是不是病狗,如果是病狗每天5点准时开枪打死,第一天没有开枪,第
二天没有开枪,第三天枪响了。问有多少只病狗?

评分

参与人数 1黑马币 +3 收起 理由
神之梦 + 3 神马都是浮云

查看全部评分

8 个回复

倒序浏览
这题目我是真没看懂,第一天,还是第几天有关系么?还5点?
回复 使用道具 举报
  1. public static void main(String[] args) {
  2.                 // TODO Auto-generated method stub

  3.                 //定义一个变量来记录病狗的数量
  4.                 int a=1;
  5.                 /*
  6.                  * 使用循环来记录每天的病狗;因为第一天只有一条狗被传染所以a=1,而是在第三天早上开的枪所以循环小于3
  7.                  * 而每天都会有狗被传染,第一天1条,第二天变成2条,第三天变成4条以此类推来找到每天共有几条病狗结果为4条
  8.                  * 以上是个人的想法;只做参考不一定对只是共同学习谢谢
  9.                  */
  10.                 for (int i =1; i <3; i++) {
  11.                         a=+a*2;
  12.                 }
  13.                 System.out.println(a);
  14.         }
复制代码
回复 使用道具 举报
设疯狗n只,因为必定有疯狗 n >= 1
第一天  有人看到n只,有人看到n-1只,但是大家都要猜测自己的狗是否为疯狗,如果n=1,很好,那个看到0个疯狗的人肯定立马杀狗了,但是没有人看到0个疯狗,所以n >= 2,所以这时候大家都知道肯定不止一个疯狗。
第二天,还是有人看到n只,有人看到n-1只,大家还是要判断自己的狗是否为疯狗,如果n=2,很好,那个只看到1个疯狗的人肯定立马杀狗了,因为第一天已经知道疯狗不止1个,你现在只看到一个疯狗,还有一个疯狗就是你家的了,但是第二天还是没有人杀狗,说明大家看到的都有两个或两个以上的疯狗,所以大家都有一个共识了,疯狗至少有三个
第三天, 枪响了,说明什么,说明有人只看到了2条疯狗,但是至少三条疯狗,哈哈 你家狗疯了,只能杀了。

评分

参与人数 1黑马币 +3 收起 理由
神之梦 + 3 神马都是浮云

查看全部评分

回复 使用道具 举报

:lol强,这都能整出代码
回复 使用道具 举报
我觉得度娘的解释,比较好理解些http://baike.baidu.com/view/2292345.htm
回复 使用道具 举报

题目的愿意是不会传染
回复 使用道具 举报
神之梦 发表于 2013-7-1 20:18
题目的愿意是不会传染

给我版主你的QQ号:我358998716:汪平乐:handshake
回复 使用道具 举报
想让大家分析一下过程,其实我感觉答案是什么无所谓,这个题考的是情商不是智商
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马