IBM 經典面試題用 .NET 編程解答

發表于:2007-06-22來源:作者:點擊數: 標簽:
村子里有50個人,每人有一條狗,在這50條狗中有病狗(這種病不傳染),于是人們要找出病狗。 每個人可以觀察其他49條狗,以判斷他們是否生病,(如果有病一定能看出來),只有自己的狗不能看,觀察后得到的結果不得交流,也不能通知病狗的主人。主人一

   
  村子里有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;
  }

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97