java 谁是小偷?

Posted _jigr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 谁是小偷?相关的知识,希望对你有一定的参考价值。

谁是小偷

问题描述
警察抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,

A说:“我不是小偷”;

B说:“C是小偷”;

C说:“小偷肯定是D”;

D说:“C在冤枉好人”。

现在已经知道这四人中有三人说的是真话,一人说的是假话。请问到底谁是小偷?

思路分析

假设A是小偷,那么A假话、B假话、C假话、D真话
假设B是小偷,那么A真话、B假话、C假话、D真话
假设C是小偷,那么A真话、B真话、C假话、D真话 √
假设D是小偷,那么A真话、B假话、C真话、D假话
按照枚举的的思路罗列出来会发现答案一目了然,把他转换成代码,for循环模拟小偷,用answer标记说真话的个数,AC!


public class Main 

	public static void main(String[] args) 
		int A='A';
		int B='B';
		int C='C';
		int D='D';
		for (int i = 'A'; i <='D'; i++) 
			int answer=0;
			if(A!=i)answer++; //A说:“我不是小偷”
			if(C==i)answer++; //B说:“C是小偷”
			if(D==i)answer++; //C说:“小偷肯定是D”
			if(D!=i)answer++; //D说:“C在冤枉好人”
			if(answer==3)
				System.out.println("小偷是:"+(char)i);
		
	


以上是关于java 谁是小偷?的主要内容,如果未能解决你的问题,请参考以下文章

杀人凶手(1人说假话)

判断谁是杀手

谁是杀人凶手

谁是杀人凶手

练习题目

ABCD 谁是小偷