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