【问题描述】甲、乙、丙、丁四人中有一个人做了好事不留名。甲说:不是我。乙说:是丙做的。丙说:是丁做的。丁说:丙说得不对。其中有三个人说的是真话,一个人说了假话。请编程根据如上线索找到做好事的人。在程序中用A、B、C、D分别代表甲、乙、丙、丁。
时间: 2024-06-02 21:13:54 浏览: 106
【解题思路】根据题目所给的信息,我们可以列出以下表格:
| 甲 | 乙 | 丙 | 丁 |
|----|----|----|----|
| × | √ | × | √ |
其中,√代表说的是真话,×代表说的是假话。根据题目要求,有三个人说的是真话,一个人说了假话,因此我们可以枚举每个人说的是真话还是假话,然后根据表格来判断哪个人做了好事。
【程序实现】
相关问题
甲、乙、丙、丁四人中有一人做了好事不留名。请大家编写程序,根据以下线索找出做好事的人。 甲说:不是我。 乙说:是丙。 丙说:是丁。 丁说:丙说的不对。 其中三人说的是真话,一人说的假话。
这是一道经典的逻辑题。根据题意,可以列出如下表格:
| 人名 | 甲 | 乙 | 丙 | 丁 |
| --- | --- | --- | --- | --- |
| 答案 | × | √ | × | × |
从表格可以看出,做好事的人是乙,因为乙说的话是真的。因此,程序的输出应该是“做好事的人是乙”。
7.甲、乙、丙、丁四人中有一人做了好事不留名。请大家编写程序,根据以下线索找出做好事的人。 甲说:不是我。 乙说:是丙。 丙说:是丁。 丁说:丙说的不对。 其中三人说的是真话,一人说的假话。
以下是 Python 代码实现:
```python
for i in ["甲", "乙", "丙", "丁"]:
count = 0
if i != "甲":
count += 1
if i == "丙":
count += 1
if i == "丁":
count += 1
if i != "丙":
count += 1
if count == 3:
print(i + "做了好事")
```
输出结果为:丁做了好事。
阅读全文