天天看点

(有兴趣的朋友进来看看)一道智力编程题

题目是:

有A、B、C、D四个人,他们各说了两句话:

A说:

     1)我是在B之前一位到达(举例:比如,B第二位到达,那么A就是第一位,下同)

     2)我不是第一名到达的

B说:

     1)我是在C之前一位到达

     2)我不是第二名到达的

C说:

     1)我是在D之前一位到达

     2)我不是第三名到达的

D说:

     1)我是在A之前一位到达

     2)我不是第四名到达的

其中:1)只有两句话是真的,但不一定是同一个人说的,其余六句话都是假的;

            2)第一名的那个人说了一句真话。(是否只说了一句真话,还是两句都是真话?不得而知)

求:A、B、C、D四个人的到达顺序。

程序代码写好了: http://files.cnblogs.com/lxinxuan/ConsoleApplication1.rar 

程序说明:构造一个由一组已知数字组成的全排列数组;穷举。

修订记录:

[20070831]修改了如果存在多解的问题,当然本题只有唯一解。

欢迎测试!