国家:挪威      丹麦     英国       德国     瑞典
颜色:黄        蓝       红         绿        白
饮料:水        茶       牛奶       咖啡      啤酒
香烟:Dunhill   Blends   PallMall   Prince   BlueMaster
宠物:猫        马       鸟         鱼        狗

解决方案 »

  1.   

    第一题我有php解题的代码,谁想要??
    给分~~!
      

  2.   

    <?
    /*
         1英国人住红房子                      ---->钱小姐穿红色衣服                     =>英国人=钱、红=红
       2瑞典人养狗                          ---->翁小姐养了一只狗                     =>瑞典人=翁、狗=狗
       3丹麦人喝茶                          ---->陈小姐喝茶                           =>丹麦人=陈、茶=茶
       4绿房子在白房子左边                  ---->穿绿衣服的站在穿白衣服的左边         =>绿=绿、白=白
       5绿房子主人喝咖啡                    ---->穿绿衣服的小姐喝咖啡                 =>绿=绿、咖啡=咖啡
       6抽PALL MALL烟的人养了一只鸟         ---->吃西瓜的小姐养鸟                     =>PALL MALL=西瓜、鸟=鸟 
       7黄房子的主人抽DUNHILL烟             ---->穿黄衣服的小姐吃梨                   =>DUNHILL=梨、黄=黄
       8住中间房子的人喝牛奶                ---->站在中间的小姐喝牛奶                 =>牛奶=牛奶
       9挪威人住第一间房子                  ---->赵小姐站在最左边                     =>挪威人=赵
       10抽Blends的人住在养猫人的旁边       ---->吃橘子的小姐站在养猫的旁边           =>Blends=橘子、猫=猫
       11养马人住在抽DUNHILL烟的人旁边      ---->养鱼的小姐旁边的那位吃梨             =>DUNHILL=梨、马=鱼
       12抽BLUE MASTER烟的人喝啤酒          ---->吃苹果的小姐喝香槟                   =>BLUE MASTER=苹果、啤酒=香槟
       13德国人抽PRINCE烟                   ---->江小姐吃香蕉                         =>PRINCE=香蕉、德国人=江
       14挪威人住在蓝房子旁边               ---->赵小姐站在穿蓝衣服的小姐旁边         =>挪威人=赵、  蓝=蓝
       15抽Blends的人的邻居喝矿泉水.        ---->喝开水的小姐站在吃橘子的小姐旁边     =>Blends=橘子、矿泉水=开水问题是:谁养鱼? 同时他住第几间房子?
    */
    function makearr() {//取得数组如:12345,12354,12453...
        $x=0;
        for($i=1; $i<6; $i++) {
            for($j=1; $j<6; $j++) {
                if($j!=$i){
                    for($k=1; $k<6; $k++) {
                       if($k!=$j and $k!=$i){
                           for($l=1; $l<6; $l++) {
                               if($l!=$k and $l!=$j and $l!=$i){
                                   for($m=1; $m<6; $m++) {
                                       if($m!=$l and $m!=$k and $m!=$j and $m!=$i) {
                                           $str[$x]=$i*10000+$j*1000+$k*100+$l*10+$m;
                                        $x++;
                                       }
                                   }
                               }
                           }
                       }
                    }
                }
            }
        }
        Return $str;
    }
     
    function subarr($str) {//把5个数字放到1个数组中去
        for($i=0; $i<5; $i++) {
            $newarr[$i]=intval(substr($str,$i,1));
        }
        Return $newarr;
    }function disparr($arr,$x) {//用于打印最后结果
        foreach($arr as $key=>$val) {
            if($val==$x) {
                Return $key+1;
            }
        }
        
    }
    $country=array("1"=>"钱","2"=>"翁","3"=>"陈","4"=>"赵","5"=>"江");
    $house=array("1"=>"红","2"=>"绿","3"=>"黄","4"=>"蓝","5"=>"白");
    $pet=array("1"=>"狗","2"=>"鸟","3"=>"猫","4"=>"蛇","5"=>"鱼");
    $drink=array("1"=>"茶","2"=>"咖啡","3"=>"牛奶","4"=>"水","5"=>"香槟");
    $sig=array("1"=>"梨","2"=>"西瓜","3"=>"橘子","4"=>"苹果","5"=>"香蕉");
    $str=makearr ();
    $max=count($str);for($i=0; $i<$max; $i++) {
        $c=subarr($str[$i]);
        if($c[3]!=1) continue;
        for($j=0; $j<$max; $j++) {
            $h=subarr($str[$j]);
            if($h[3]!=2) continue;
            if($h[1]>$h[4]) continue;
            if($h[0]!=$c[0]) continue;
            for($k=0; $k<$max; $k++) {
                $p=subarr($str[$k]);
                if($p[0]!=$c[1]) continue;
                for($l=0; $l<$max; $l++) {
                    $d=subarr($str[$l]);
                    if($d[0]!=$c[2]) continue;
                    if($d[2]!=3) continue;
                    if($d[1]!=$h[1]) continue;
                    for($m=0; $m<$max; $m++) {
                        $s=subarr($str[$m]);
                        if($s[1]!=$p[1]) continue;
                        if($s[0]!=$h[2]) continue;
                        if(abs($s[0]-$p[4])!=1) continue;
                        if($s[3]!=$d[4]) continue;
                        if($s[4]!=$c[4]) continue;
                        if(abs($s[2]-$d[3])!=1) continue;
                        if(abs($s[2]-$p[2])!=1) continue;
                        break 5;
                    }
                }
            }
        }
        
    }for($i=1; $i<6; $i++) {
    echo("第".($i)."位女士是穿着".$house[disparr($h,$i)]."色衣服的".$country[disparr($c,$i)]."小姐, 养一只".$pet[disparr($p,$i)].", 喜欢喝".$drink[disparr($d,$i)].",&nbsp;&nbsp;喜欢吃".$sig[disparr($s,$i)]."<br>");
    }
    ?>
      

  3.   

    第一题的答案:
    房子颜色:  黄      蓝      红      绿      白
    国籍       挪威    丹麦    英国    德国    瑞典
    饮料        水      茶     牛奶    咖啡    啤酒
    香烟     Dunhill Blends Pall Mall Prince Blue Master
    宠物        猫      马      鸟     [鱼]     狗对吗?
      

  4.   

    runmin(runmin.vicp.net):
    这一招人家用好久啦呵呵
      

  5.   

    xinyunyishui(心云意水)
    无敌!!!
    接分!!!
      

  6.   

    runmin(runmin.vicp.net):
    这招也是学的
      

  7.   

    xinyunyishui(心云意水)
    答案是对的
    后面几个能不能做出来