用编程解决逻辑问题

您所在的位置:网站首页 逻辑问题真话假话 用编程解决逻辑问题

用编程解决逻辑问题

#用编程解决逻辑问题| 来源: 网络整理| 查看: 265

有人说真话,有人说假话,这些逻辑题都可以用编程来解决,下面列举了题主做过的一些题,用C语言和Python解决。

一、某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说。 已知3个人说了真话,1个人说的是假话。 根据这些信息,确定到底谁是凶手。

C:

#include int main(void) { char muderer; //从A到D遍历一遍,假设其中一个是凶手 for(muderer = 'A'; muderer printf("凶手是%c", muderer); } } return 0; }

Python:

for muderer in ['A', 'B', 'C', 'D']: if((muderer != 'A') + (muderer == 'C') + (muderer == 'D') + (muderer != 'D') == 3): print("凶手是%c" % muderer)

二、5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请确定比赛的名次。

C:

#include int main(void) { int A, B, C, D, E; //由于下面if语句过长,for语句省略大括号 for(A = 1; A printf("甲说%s\n", a ? "真话" : "假话"); printf("乙说%s\n", b ? "真话" : "假话"); printf("丙说%s\n", c ? "真话" : "假话"); } return 0; }

Python:

for a in range(0, 2): for b in range(0, 2): for c in range(0, 3): if((a and not b or not a and b) and (b and not c or not b and c) and (c and a+b==0 or not c and a+b!=0)): print("甲说真话" if(a) else "甲说假话") print("乙说真话" if(b) else "乙说假话") print("丙说真话" if(c) else "丙说假话")

四、有五兄弟,各说了一句话: 老大说:我们五人中,有一个人正在撒谎。 老二说:我们五人中,有两个人在撒谎。 老三说:我们五人中,有三个人撒谎。 老四说:我们五人中,有四人撒谎。 老五说:我们五个人全都在撒谎。 判断谁说了真话?谁说了假话?

C:

#include int main(void) { int a, b, c, d, e;//表示五兄弟 for(a = 0; a char suspect; for(suspect = 'a'; suspect 'a':"甲打碎了玻璃", 'b':"乙打碎了玻璃", 'c':"丙打碎了玻璃", 'd':"丁打碎了玻璃"} for suspect in ['a', 'b', 'c', 'd']: if((suspect == 'b') + (suspect == 'd') + (suspect != 'c') + (suspect !='d') == 1): print(dic.get(suspect))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3