查看: 7335|回复: 17

[逻辑推理] 侦探的题目

转载  简洁模式
发表于 2008-11-6 12:39:07 | 显示全部楼层
假设已经查清,有A、B、C、D、E五个嫌疑人可能参与制造了一起抢劫银行案,
但是不知道其中哪几个是真正的案犯。不过,有确凿证据表明:
1.如果A参与了作案,则B一定也会参与;
2.B和C两个人中只有一人参与了作案;
3.C和D要么都参与了作案,要么都没有参与;
4.D和E两个人中至少有一个人参与作案;
5.如果E作案,则A和D一定参与作案。

用C语言解出来怎么做??要求用最少的循环!!!
| 发表于 2008-11-6 13:05:43 | 显示全部楼层
我先用中文解出來:
假設 A作案 =〉B作案 =〉C沒有作案 =〉D沒有作案 =〉E有作案 =〉D憂作案
即D既沒有作案又有作案,矛盾!
所以A、B有作案不成立。

現在
A、B都沒有作案 =〉C有作案 =〉D有作案
               =〉E沒有作案

所以犯人為:C,D
| 发表于 2008-11-6 17:04:30 | 显示全部楼层
很简单呀!!!!!!!!!!!1
| 发表于 2008-11-6 17:27:01 | 显示全部楼层
用中文是很簡單
用C語言就得想想了...
| 发表于 2008-11-6 21:37:37 | 显示全部楼层
用C语言解出来怎么做??要求用最少的循环!!!


是什么意思!!不明白!!

小鼠乖乖 于 2008-11-6 21:38 对帖子补充以下内容

PS:什么是C语言。。就是不明白这个,求个前辈指导!
| 发表于 2008-11-7 10:03:18 | 显示全部楼层
小家伙,你多大啊?
学校里开了计算机课米有?


C语言是一种编程语言
| 发表于 2008-11-7 12:54:02 | 显示全部楼层
17岁
高2
本人学艺不精,指能读技校!!
| 发表于 2008-11-7 12:57:06 | 显示全部楼层
是用C语言啊,的确得找专业人士了
不过IC那边的有一个是编程人士,应该会吧,
这里有没有呢???出来解答一下吧
| 发表于 2008-11-7 14:23:09 | 显示全部楼层
for (int i = 1; i >-1; i--)
            {
                int a = i, b=0, c = 0, d = 0, e = 0;
                int A = 0, B = 0, C = 0, D = 0, E = 0;
                A++;
                if (a == 1)
                {
                    b = 1;
                    c = 0;
                    B++;
                    C++;
                }
                else if(b==0)
                {
                    c = 1;
                    B++;
                    C++;
                }
                d = c;
                D++;
                if (d == 0)
                {
                    e = 1;
                }
                if (e == 1)
                {
                    a = e;
                    d = e;
                    A++;
                    D++;
                    E++;
                }
                else
                {
                    d = 1;
                    E++;
                }
                if (A == 1 && B == 1 && C == 1 && D == 1 && E == 1)
                {
                    if (a == 1)
                        printf("A有作案\n");
                    if (b == 1)
                        printf("B有作案\n");
                    if (c == 1)
                        printf("C有作案\n");
                    if (d == 1)
                        printf("D有作案\n");
                    if (e == 1)
                        printf("E有作案\n");
                    break;
                }
                continue;
            }

白馬探 于 2008-11-7 14:26 对帖子补充以下内容

運行結果無誤
循環2次
但設計思路不知是否恰當
還請各位檢驗
| 发表于 2008-11-30 21:56:28 | 显示全部楼层
中文我也解出来了,是C和D;至于C语言嘛,不好意思,全都还给老师了!
返回版块
12
尚未登录
您需要登录后才可以回帖 登录 | 加入学院