java 谁是小偷?

Posted //我是小白

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 谁是小偷?的主要内容,如果未能解决你的问题,请参考以下文章

ABCD 谁是小偷

根据父活动在片段中调用不同的方法

年度盘点:谁是 2017 dW 的 Java “网红”?

温柔的陷阱——《谁是代码界3%的王者?》

Java开发之我是一个会动态规划的小偷

站在Java的视角,深度分析防不胜防的小偷——“XSS”