1. 题目
4位同学中的一位做了好事,班主任问是这四位同学中的哪位做了好事。A说“不是我”,B说“是C”,C说“是D”,D说“C胡说”。已知四人中有三人说的是真话,一人说的是假话。根据这些信息,找到做好事的人。
2. 使用逻辑的解法
四个结论中有三个是真的,而C和D说的是相互矛盾的,所以这其中有一个是真有一个是假,所以AB说的都是真的。那么做好事的人就是C。
3. 使用程序来解这到题(以Java为例)
public static void main(String[] args) {
int man;
for (man = 1; man <= 4; man++) {
int a = (man != 1) ? 1 : 0;
int b = (man == 3) ? 1 : 0;
int c = (man == 4) ? 1 : 0;
int d = (man != 4) ? 1 : 0;
if (a + b + c + d == 3) {
break;
}
}
switch (man) {
case 1 :
System.out.println("The man is A");
break;
case 2 :
System.out.println("The man is B");
break;
case 3 :
System.out.println("The man is C");
break;
case 4 :
System.out.println("The man is D");
break;
}
}