蓝桥杯练习系统 ID: 260 凶手
凶手
Description
巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:
A:我不是罪犯
B:A、C中有一个是罪犯
C:A和B说了假话
D:C和F说了假话
E:其他五个人中,只有A和D说了真话
F:我是罪犯
他们中只有一半说了真话,凶手只有一个。
本题可能有多种可能性,即正确答案(找到唯一的凶手)可能有多个,但每一个可能的答案(某一个是凶手)都满足上述口供。
请编程找出可能的凶手输出。
样例:(假设唯一的凶手是A或者D或者E,则输出结果为三行,按字母顺序依次输出)
A
D
E
Input
如题所示。
Output
如题所示。
Sample Input 1
参考上文
Sample Output 1
参考上文
Hint
HINT:时间限制:1.0s 内存限制:256.0MB
Source
蓝桥杯练习系统 ID: 260 原题链接: http://lx.lanqiao.cn/problem.page?gpid=T260
法一:
1 #include<stdio.h> 2 int main() 3 { 4 printf("B\nC\nD\nE\n"); 5 return 0; 6 }
法二:
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 int ret[7]; 6 7 int A(){ return ret[0]!=1; } 8 int B(){ return ret[0]==1||ret[2]==1; } 9 int C(){ return !A()&&!B(); } 10 int F(){ return ret[5]==1; } 11 int D(){ return !C()&&!F(); } 12 int E(){ return A()&&D()&&!B()&&!C()&&!F(); } 13 int main() 14 { 15 for(int i = 0; i < 6; i ++) 16 { 17 ret[i] = 1; 18 int res = A()+B()+C()+D()+E()+F(); 19 if(res == 3) printf("%c\n", i+'A'); 20 ret[i] = 0; 21 } 22 return 0; 23 }
本文来自博客园,作者:泥烟,CSDN同名, 转载请注明原文链接:https://www.cnblogs.com/Knight02/p/16045916.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY