六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 90|回复: 0

一道六嫌疑犯的逻辑判断题

[复制链接]

升级  10.8%

386

主题

386

主题

386

主题

探花

Rank: 6Rank: 6

积分
1216
 楼主| 发表于 2013-1-27 04:45:50 | 显示全部楼层 |阅读模式
<div class="highlighter">

  • /**
  •  * 某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: <br>
  •  * A、B至少有一人作案;<br>
  •  * A、E、F三人中至少有两人参与作案;<br>
  •  * A、D不可能是同案犯;<br>
  •  * B、C或同时作案,或与本案无关; C、D中有且仅有一人作案;<br>
  •  * 如果D没有参与作案,则E也不可能参与作案。<br>
  •  * 试编一程序,将作案人找出来。
  •  * 
  •  * @author 赵学庆,Java世纪网(java2000.net)
  •  * 
  •  */<span />
  • public class T {
  •   public static void main(String[] args) {
  •     // TODO Auto-generated method stub<span />
  •     String[] persons = { "A", "B", "C", "D", "E", "F" };
  •     for (int i = 0; i <= 63; i++) {
  •       int t = i;
  •       int num[] = new int[6];
  •       int j = 5;
  •       for (; j >= 0; j--) {// 换成二进制数码,保存在一个6个元素的一维数组中<span />
  •         if (t / 2 > 0) {
  •           num[j] = t % 2;
  •           t = t / 2;
  •         } else {
  •           num[j] = t;
  •           break;
  •         }
  •       }
  •       // num[0]--num[5]代表A--F<span />
  • <span />
  •       // 代表AB至少有一个人作案<span />
  •       if (num[0] + num[1] >= 1) {
  •         // AEF 至少2个人作案<span />
  •         if (num[0] + num[4] + num[5] >= 2) {
  •           // AD 不是同案犯。但可能都没作案或其中一个作案<span />
  •           if (num[0] + num[3] <= 1) {
  •             // BC 同时作案,或者同时没作案<span />
  •             if ((num[1] + num[2] == 0 || num[1] + num[2] == 2)) {
  •               // CD肯定有一个人作案了<span />
  •               if (num[2] + num[3] == 1) {
  •                 // 如果D没作案且E也没作案,或者 D作案了了<span />
  •                 if (num[3] == 0 && num[4] == 0 || num[3] == 1)
  •                   for (int index = 0; index < num.length; index++) {
  •                     if (num[index] == 1) {
  •                       System.out.print(persons[index]);
  •                     }
  •                   }
  •               }
  •             }
  •           }
  •         }
  •       }
  • <span />
  •     }
  • <span />
  •   }
  • <span />
  • }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表