求一道题的算法!该如何解决

求一道题的算法!!!!
当我看到这道题一点思路也没有,哪位帮一把!!
        说有50条狗里面存在病狗,每只狗有一个主人,他不可以看自己的狗有没有病,但可以通过看别人的狗来判断,一旦推断出自己的狗有病则一枪打死它,狗主人在白天观察时不允许开枪,晚上可以开枪但不允许是因为听到别人开枪后觉得自己的狗是病狗才开枪,前两天都没有开枪,第三天晚上开枪了,问有几只狗是病狗?
        说的具体点儿,最好有注释!!

------解决方案--------------------
用假设推测就可以了。有人发过这个贴子的,面试题。
------解决方案--------------------
这哪是算法题,明明是一个逻辑推断题呀!

A、如果为1,第一天那条狗必死,因为狗主人没看到病狗,但病狗存在。

B、若为2,令病狗主人为a,b。 a看到一条病狗,b也看到一条病狗,但a看到b的病狗没死故知狗数不为1,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b的想法与a一样,故也开枪。由此,为2时,第一天看后2条狗必死。


C、若为3条,令狗主人为a,b,c。 a第一天看到2条病狗,若a设自己的不是病狗,由推理2,第二天看时,那2条狗没死,故狗数肯定不是2,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c的想法与a一样,故也开枪。由此,为3时,第二天看后3条狗必死。


D、若为4条,令狗主人为a,b,c,d。a第一天看到3条病狗,若a设自己的不是病狗,由推理3,第三天看时,那3条狗没死,故狗数肯定不是3,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c,d的想法与a一样,故也开枪。由此,为4时,第三天看后4条狗必死。5 余下即为递推了,由年n-1推出n。
答案:n为4。第四天看时,狗已死了,但是在第三天死的,故答案是3条。