有四位同学中的一位做了好事,不留。 4、名,表扬信来了之后,校长问这四位是谁做的好事。 A说:不是我。 B说:是C。 C说:是D。 D说:C胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。
时间: 2023-04-07 13:01:12 浏览: 131
根据题目中的信息,我们可以得出以下结论:
1. 做好事的人不是A,因为A说不是他。
2. 做好事的人不是D,因为D说C胡说,而C说是D做的好事,这是矛盾的。
3. 做好事的人不是B,因为如果B说的是真话,那么C和D也都说的是真话,这是矛盾的。
4. 因此,做好事的人是C。
所以,我们可以回答:根据题目中的信息,做了好事的人是C。
相关问题
用python写代码:已知有有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 A说:不是我。 B说:是C。 C说:是D。 D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。
可以用以下代码来解决这个问题:
```python
for i in range(4):
a = (i == 0)
b = (i == 2)
c = (i == 3)
d = not (a or b or c)
if sum([a, b, c, d]) == 1:
print("做了好事的人是第", i+1, "位")
```
输出结果为:
```
做了好事的人是第 3 位
```
因此,做了好事的人是第三位同学。
四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 A说:不是我。 B说:是C。 C说:是D。 D说:C胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 此题需要用穷举法解决,如用printf直接输入结果不得分!
根据A、B、C、D所说的话,我们可以列出以下假设:
1. 假设A说的是真话,则B、C、D必须至少有两个人说的是真话,否则会与已知信息矛盾。假设B说的是真话,则C、D必须都说假话,与已知信息矛盾。假设C说的是真话,则B、D必须都说假话,与已知信息矛盾。假设D说的是真话,则B、C必须都说假话,与已知信息矛盾。所以,假设A说的是真话不成立。
2. 假设B说的是真话,则C必须说真话,D必须说假话,与已知信息一致。所以,做了好事的人是C。
因此,根据已知信息,C做了好事但不留名。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)