(有兴趣的朋友进来看看)一道智力编程题
题目是:
有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四个人的到达顺序。
程序代码写好了:https://files.cnblogs.com/lxinxuan/ConsoleApplication1.rar
程序说明:构造一个由一组已知数字组成的全排列数组;穷举。
修订记录:
[20070831]修改了如果存在多解的问题,当然本题只有唯一解。
欢迎测试!
有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四个人的到达顺序。
程序代码写好了:https://files.cnblogs.com/lxinxuan/ConsoleApplication1.rar
程序说明:构造一个由一组已知数字组成的全排列数组;穷举。
修订记录:
[20070831]修改了如果存在多解的问题,当然本题只有唯一解。
欢迎测试!