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

王朝c#·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航