有六个人,姓名职业如下:

"小阳", 医生, 
"小刚",医生 
"小地", 医生, ;
"小温", 律师, 
"小红", 律师, 
"小丽", 律师,

小阳妹妹是小地和小红

小丽哥哥是小刚,小温,

小阳的女朋友是小丽

这六个人里的一个人杀了其余五个人中的一个人。

(1)如果凶手和受害者有亲缘关系,则凶手是位男性;

(2)如果凶手和受害者没有亲缘关系,则凶手是位医生;

(3)如果凶手和受害者职业相同,则受害者是位男性;

(4)如果凶手和受害者没有相同工作,则受害者是位女性;

(5)如果凶手和受害者性别不同,则凶手是位律师;

(6)如果凶手和受害者性别相同,则受害者是位医生。

谁是凶手?

package demo;import java.util.*;public class Lj {static class Person {public String name;public int sex;  //性别 1男 2女public int occupation; //职业 1医生 2律师public Person() {}public Person(String name, int sex, int occupation) {this.name = name;this.sex = sex;this.occupation = occupation;}//判断是否是亲戚public boolean isRelative(Person p) {return (relatives1.contains(this.name) && relatives1.contains(p.name))|| (relatives2.contains(this.name) && relatives2.contains(p.name));}//判断是否相同职业public boolean isSameOccupation(Person p) {return this.occupation == p.occupation;}//判断性别是否相同public boolean isSameSex(Person p) {return this.sex == p.sex;}public boolean equals(Object o) {if (o == null)return false;if (o.getClass() == Person.class) {if (((Person) o).name == this.name) {return true;}}return false;}}final static List<Person> PERSON_LIST = new ArrayList<>();static {PERSON_LIST.add(new Person("小阳", 1, 1));PERSON_LIST.add(new Person("小刚", 1, 1));PERSON_LIST.add(new Person("小地", 2, 1));PERSON_LIST.add(new Person("小温", 1, 2));PERSON_LIST.add(new Person("小红", 2, 2));PERSON_LIST.add(new Person("小丽", 2, 2));}//亲戚1static Set<String> relatives1 = new HashSet<>(Arrays.asList("小阳,小地,小红".split(",")));//亲戚2static Set<String> relatives2 = new HashSet<>(Arrays.asList("小丽,小刚,小温".split(",")));public static void main(String[] args) {BREAKPOINT:for (Person murderer : PERSON_LIST) {for (Person victim : PERSON_LIST) {boolean isRelative = murderer.isRelative(victim);boolean isSameOccupation = murderer.isSameOccupation(victim);boolean isSameSex = murderer.isSameSex(victim);boolean f1 = isRelative ? murderer.sex == 1 : murderer.occupation == 1;boolean f2 = isSameOccupation ? victim.sex == 1 : victim.sex == 2;boolean f3 = isSameSex ? victim.occupation == 2 : murderer.occupation == 2;if (f1 && f2 && f3 && !murderer.name.equals(victim.name)) {System.out.println("凶手是" + murderer.name + ",受害人是" + victim.name);break BREAKPOINT;}}}}}

JAVA逻辑推理题1-谁是凶手相关推荐

  1. C语言逻辑推理题谁是凶手

    C语言逻辑推理题谁是凶手 假定一个岛上住着三类人:骑士.无赖和普通人(也称为间谍).骑士总是说真话,无赖总是说假话,普通人有时说谎话有时说真话.侦探为了调查一宗罪案,而询问了岛上的三个人,小An,小Z ...

  2. 逻辑推理题:谁是凶手

    有六个人,姓名职业如下: "小阳", 医生,  "小刚",医生  "小地", 医生, ; "小温", 律师,  &quo ...

  3. java逻辑题_Java蓝桥杯——逻辑推理练习题

    逻辑推理题 谁是贼? 公安人员审问四名窃贼嫌疑犯.已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎.在回答公安人员的问题中: 甲说:"乙没有偷,是丁偷的.&quo ...

  4. C语言--确定到底谁是凶手

    ·原题 ·日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个.以下为4个嫌疑犯的供词. A说:不是我. B说:是C. C说:是D. D说:C在胡说 已知3个人说了真话,1个人说的 ...

  5. 互联网公司笔试-逻辑推理题及解答【精选100道】

    互联网公司笔试-逻辑推理题及解答[精选100道] [1]假设有一个池塘,里面有无穷多的水.现有2个空水壶,容积分别为5升和6升.问题是如何只用这2个水壶从池塘里取得3升的水. 由满6向空5倒,剩1升, ...

  6. 【每日一题】——猜凶手

    一.题目描述 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个. 以下为4个嫌疑犯的供词: A说:不是我. B说:是C. C说:是D. D说:C在胡说 已知3个人说了真话,1个人 ...

  7. 【朝花夕拾C语言】:C语言,猜猜谁是凶手?

    文章目录 前言 第一道题目:猜猜四个人谁是凶手? 1.1题目简介 1.2分析逻辑 1.3代码实现 第二道题目:判断五个人的名次 2.1 题目简介 2.2分析逻辑 2.3代码实现 总结 前言 距离上次写 ...

  8. 面试、逻辑推理题(一) 诚实者问题、财富问题、病狗问题

    关于逻辑推理题:诚实者问题,财富问题,病狗问题的解题思路和回答,如果有更好的方法或者有质疑请评论提出,欢迎大家发表不同的见解供我学习参考,谢谢 ps:如果有一些有趣的逻辑题也可以告诉我哦 1. 诚实者 ...

  9. Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤...

    TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据.对任何程序员来说,熟悉TCP和UDP的工作方式都是至关重要的.这就是为什么TCP和UDP是一个流行的Java编程面试问题. Jav ...

最新文章

  1. 022 Spark shuffle过程
  2. python学习笔记(生成xml)
  3. oracle tranc,ORACLE TRUNC()函数
  4. makefile指定头文件路径_玩转Makefile | 企业项目Makefile实例
  5. C#获取周一、周日的日期 函数类
  6. 华为的mysql数据库如何登陆_怎么登陆mysql数据库
  7. python类修饰器_Python 中使用类修饰器修饰类方法如何处理 self?
  8. android.appwidget-AppWidgetManager
  9. 感知器分类模型回顾与python实现
  10. 荣耀V8鸿蒙系统刷机包,华为荣耀V8原版rom系统刷机包_荣耀V8最新版升级包更新下载...
  11. VTN4系列多通道振弦模拟信号采集仪模拟通道值和振弦传感器温度通道值修正
  12. 使用aspose.words将Word转为PDF
  13. 多重比较和多重比较陷阱
  14. 看片会员php源码,会员碎片 · THINKPHP插件 · 看云
  15. Gibbs Sampling(吉布斯采样)
  16. zabbix使用pg_monz模板日常监控postgresql
  17. 好程序员云计算教程分享入门云计算要精通学习什么?
  18. 数据结构与算法之解析之路
  19. 实践与共享:可一键自动搜寻添加有效ID并可成功激活 ESET Nod32 的小工具(绝对好用)...
  20. 卖程序的小女孩 -安徒生

热门文章

  1. 变形金刚3:月黑之时1280超清迅雷下载
  2. 如何取消计算机共享密码设置,win7系统计算机取消共享密码的操作方法
  3. html5全屏显示百度地图,百度地图实现地图全屏(放大页面全屏)
  4. 已解决!XXX cannot be resolved to a type!
  5. qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥
  6. 一寸相思千万绪,人间没个安排处。—第二十八天
  7. 位列首位!百度智能云开物入选“双跨”平台国家队
  8. Tita的OKR:如何对OKR进行评分
  9. CUDA并行编程较有用的总结
  10. QT 实现滚屏显示多张漂亮美眉图片(可放大缩小)