首页 > 学院 > 开发设计 > 正文

IBM 经典面试题用 .NET 编程解答

2019-11-18 12:02:59
字体:
来源:转载
供稿:网友

  村子里有50个人,每人有一条狗,在这50条狗中有病狗(这种病不传染),于是人们要找出病狗。
  
  每个人可以观察其他49条狗,以判定他们是否生病,(假如有病一定能看出来),只有自己的狗不能看,观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的狗是病狗就是枪毙自己的狗(发现后必须在一天内枪毙),而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。
  
  第一天大家全看完了,但枪没有响,到了第三天传来一阵枪声,问村里共有几条病狗,如何推算出来的?
  请根据题意 编写一段程序完成此试题的解答!
  
  int iDog;   //病狗数量
  int nDog;   //狗的数量
  int pDog;   //人数;等于狗的数量
  bool HaveLook=false;
  
  for (int i=1;i{
  iDog=i;  //推数的病狗数量
  
  for (int j=1;j<=pDog;j++) //每人
  {
  int LookiDog=LookDog(); //观察狗,返回看到的病狗数量
  if (lookiDog {
  killDog(pDog[j]);
  HaveLook=true;
  }
  }
  if (HaveLook) return iDog;
  }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表