罗瑶


私信TA

用户名:luoyao

访问量:17185

签 名:

等  级
排  名 232
经  验 6188
参赛次数 0
文章发表 100
年  龄 0
在职情况 学生
学  校 湖北生物科技职业学院
专  业

  自我简介:

参考代码:

public class 凶手 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1498: [蓝桥杯][算法提高VIP]凶手
		/*巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:
		A:我不是罪犯
		B:A、C中有一个是罪犯
		C:A和B说了假话
		D:C和F说了假话
		E:其他五个人中,只有A和D说了真话
		F:我是罪犯
		他们中只有一半说了真话,凶手只有一个。
		本题可能有多种可能性,即正确答案(找到唯一的凶手)可能有多个,但每一个可能的答案(某一个是凶手)都满足上述口供。
		请编程找出可能的凶手输出。
		(假设唯一的凶手是A或者D或者E,则输出结果为三行,按字母顺序依次输出)*/
		int [] arr=new int[6];
		int count;	
		for (int i = 0; i <6; i++) {
			arr[i]=1;
			count=0;
			boolean f1=false,f2=false,f3=false,f4=false,f5=false,f6=false;
			if (arr[0]!=1) {
				f1=true;
				count++;
			}
			if (arr[0]==1||arr[2]==1) {
				f2=true;
				count++;
			}
			if (!f1&&!f2) {
				f3=true;
				count++;
			}
			if (!f3&&!f6) {
				f4=true;
				count++;
			}
			if (f1&&!f2&&!f3&&f4&&!f6) {
				f5=true;
				count++;
			}
			if (arr[5]==1) {
				f6=true;
				count++;
			}
			if (count==3) {
				System.out.println((char)(i+65));
			}
			arr[i]=0;
		}
		
	}

}


 

0.0分

3 人评分

  评论区

这么长的题解写出来作者一定很有耐心吧!向你学习!
2021-03-25 17:03:39
  • «
  • 1
  • »