有A B C D E F 五人,请根据下列条件,编程找出作案人员:
(1) A B 至少有一人作案;
(2) A E F 三人中至少有2人参与作案;
(3) A D不可能是同案犯;
(4) B C 或同时作案或与本案无关;
(5) C D 中有且仅有一人作案;
(6) 如果D没有参与作案,则E也不可能参与作案;
请各位大哥帮忙想一下,小弟我不胜感激啊!
protected void Page_Load(object sender, EventArgs e) {
char[] men;
for (int count = 16; count < 64; count++) {
men = Convert.ToString(count, 2).PadLeft(6, '0').ToCharArray();
if (filter1(men[0], men[1])
&& filter2(men[0], men[4], men[5])
&& filter3(men[0], men[3])
&& filter4(men[1], men[2])
&& filter5(men[2], men[3])
&& filter6(men[3], men[4])) {
Response.Write(men, 0, 6);
Response.Write("<br/>");
}
}
}
//m n至少有一个为1 0,48 1,49
private bool filter1(char m, char n) {
return (m+n)>96;
}
//m n x至少有两个为1
private bool filter2(char m, char n, char x) {
return (m+n+x)>(3*48)+1;
}
//m n不可能同时为1
private bool filter3(char m, char n) {
return (m+n)!=(2*49);
}
//m与n相等
private bool filter4(char m, char n) {
return m == n;
}
//m n中有且只有一个等于1
private bool filter5(char m, char n) {
return (m+n)==(48+49);
}
//如果m为0 则E也为0
private bool filter6(char m, char n) {
return !(m==48&&n!=48);
}
(a,b,c,d,e,f)(0,0,0,0,0,0)为清白 1为罪犯
结果为111001
所以a b c f是罪犯