完美程序

陈勇文 发表于 PHP技术 分类,标签:
48

今天逛论坛看到一道非常有意思的题目“由杀人游戏写程序分析”

原题如下:
某地发生了一起谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯中的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说。 已知3个人说了真话,1个人说的是假话。请根据这些信息,写一个程序来确定到底谁是凶手 。

这是一道非常简单的逻辑思维题,正常人都可以推理出谁是凶手,但是如果叫你写一个程序来判断谁是凶手呢?你能写出来吗?或许你能写出来,但你写的程序一定是最好的吗?

事实上很多人都是写不出来的,因为不懂得把自己所想的用程序表示出来,而一些能够写出来的,却把程序写得过于复杂。昨天一个同学跟我说了这样一句话“程序是最公正的,能够运行出你想要结果的程序就是对的”。我想了一下,是对的。但不够完美,真正的程序员应该追求用最完美的程序来运行出想要的结果。

答案揭晓了,(*^__^*) ,你一定会惊叹作者的聪明才智。

<?php
$men = array ( 'A','B','C','D' ) ;   //四个嫌疑犯
foreach ( $men as $man )   //逐个判断。
{ 
if( ($man!='A')+($man=='C')+($man=='D')+($man!='D') == 3 ) //有三个人说的话是真的话条件成立
echo $man . ' is the killer.' ; 
}
?>

This is perfect program。

« 上一篇:php+mysql+thinkphp学生选课系统 帝国CMS导入模板的教程(注意编码):下一篇 »

48 篇评论

发表我的评论

你需要 登录 才可以回复.