输入两个参数,1栋2楼A室,6栋4楼C室    结果要输出这两栋房间编号中间所有房间的编号.即1栋2楼B室.....6栋4楼B室.条件(每栋有30层 ,每层有A,B,C三室)  请问用php怎么写啊。.呵呵

解决方案 »

  1.   

    <?
    for($i=1;$i<=6;$i++)
    {
    for($j=1;$j<=30;$j++)
    {
    for($k=a;$k<=c;$k++)
    {
    echo $i."幢".$j."层".$k."室"."<br>";
    } }}?>
      

  2.   

    楼上已写我来翻版.<?php
    define ( DONG_NUM ,6);
    define ( LAYER_NUM ,30);
    for( $i = 1;$i <= DONG_NUM ; $i++ ) 

        for($j=1;$j <=LAYER_NUM;$j++) 
        { 
             for($k=a;$k <=c;$k++) 
            { 
                 echo $i."幢".$j."层".$k."室"." <br>"; 
            } 
       } 
    } ?>
      

  3.   

    用了一個本辦法,不知道可以不?<?
    function room($a,$b,$c,$d,$e,$f)//參數依次對應為:1栋2楼A室,6栋4楼C室
     {
      for($k=$c;$k <=c;$k++)
       { 
        echo $a."幢".$b."层".$k."室"." <br>"; 
       }  
       for($j=$b+1;$j <=30;$j++)
        { 
             for($k=a;$k <=c;$k++) 
            { 
             echo $a."幢".$j."层".$k."室"." <br>"; 
             } 
          } 
      for( $i =$a+1;$i < $d ; $i++ ) 
      { 
        for($j=1;$j <=30;$j++) 
        { 
             for($k=a;$k <=c;$k++) 
            { 
             echo $i."幢".$j."层".$k."室"." <br>"; 
             } 
          } 
       }
       for($j=1;$j <$e;$j++)
        { 
             for($k=a;$k <=c;$k++) 
            { 
             echo $d."幢".$j."层".$k."室"." <br>"; 
             } 
          }
      for($k=a;$k <=$f;$k++) 
       { 
        echo $d."幢".$e."层".$k."室"." <br>"; 
       }  
    }
    $a=room(1,2,"a",6,4,"c");
    echo $a;
    ?>
      

  4.   

    看看我的代码
    <?php
    //设置查询参数(格式为:x栋x层x室)
    $beginRoom = "4栋27层B室";
    $endRoom = "6栋6层C室";//查找字符串
    function select($patten, $room)
    {
    if(preg_match($patten, $room, $match))
    {
    return $match[0];
    }
    }function showRooms($beginRoom, $endRoom)
    {
    //获取第一个参数的数据
    $beginDongNum =$beginRoom{0} ;
    $beginFloorNum = select("/(30|[1-2][0-9]|[1-9])/", substr($beginRoom,2));
    $beginRoomNum = select("/[ABC]/", $beginRoom); //获取第二个参数的数据
    $endDongNum =$endRoom{0};
    $endFloorNum =  select("/(30|[1-2][0-9]|[1-9])/", substr($endRoom,2));;
    $endRoomNum = select("/[ABC]/", $endRoom);

    //循环输出两者之间的数据
    if ($beginDongNum<$endDongNum)
    {
    for(; $beginDongNum<=$endDongNum; $beginDongNum++,$beginFloorNum=1)
    for(; $beginFloorNum<=30; $beginFloorNum++,$beginRoomNum= "A")
    {
    for(; $beginRoomNum<="C"; $beginRoomNum++)
    {
    echo $beginDongNum."幢".$beginFloorNum."层".$beginRoomNum."室"." <br>"; 
    }
    }
    }
    else if($beginDongNum==$endDongNum)
    {
    for(; $beginFloorNum<=$endFloorNum; $beginFloorNum++,$beginRoomNum ="A")
    for(; $beginRoomNum<="C"; $beginRoomNum++)
    {
    echo $beginDongNum."幢".$beginFloorNum."层".$beginRoomNum."室"." <br>"; 
    }
    }
    else if($beginDongNum==$endDongNum && $beginFloorNum==$endFloorNum)
    {
    for(; $beginRoomNum<=$endRoomNum; $beginRoomNum++)
    {
    echo $beginDongNum_."幢".$beginFloorNum."层".$beginRoomNum."室"." <br>"; 
    }
    }
    }
    showRooms($beginRoom, $endRoom);
    ?>
      

  5.   

    对不起这也有问题,现在贴出正确的
    <?php
    //设置查询参数(格式为:x栋x层x室)
    $beginRoom = "2栋2层B室";
    $endRoom = "3栋1层C室";//查找字符串
    function select($patten, $room)
    {
    if(preg_match($patten, $room, $match))
    {
    return $match[0];
    }
    }function showRooms($beginRoom, $endRoom)
    {
    //获取第一个参数的数据
    $beginDongNum =$beginRoom{0} ;
    $beginFloorNum = select("/(30|[1-2][0-9]|[1-9])/", substr($beginRoom,2));
    $beginRoomNum = select("/[ABC]/", $beginRoom); //获取第二个参数的数据
    $endDongNum =$endRoom{0};
    $endFloorNum =  select("/(30|[1-2][0-9]|[1-9])/", substr($endRoom,2));
    $endRoomNum = select("/[ABC]/", $endRoom);

    //循环输出两者之间的数据
    if ($beginDongNum<$endDongNum)
    {
    for(; $beginDongNum<$endDongNum; $beginDongNum++,$beginFloorNum=1)
    for(; $beginFloorNum<=30; $beginFloorNum++,$beginRoomNum= "A")
    {
    for(; $beginRoomNum<="C"; $beginRoomNum++)
    {
    echo $beginDongNum."幢".$beginFloorNum."层".$beginRoomNum."室"." <br>"; 
    }
    }

    for(; $beginFloorNum<=$endFloorNum; $beginFloorNum++,$beginRoomNum ="A")
    for(; $beginRoomNum<="C"; $beginRoomNum++)
    {
    echo $beginDongNum."幢".$beginFloorNum."层".$beginRoomNum."室"." <br>"; 
    }
    }
    else if($beginDongNum==$endDongNum)
    {
    for(; $beginFloorNum<=$endFloorNum; $beginFloorNum++,$beginRoomNum ="A")
    for(; $beginRoomNum<="C"; $beginRoomNum++)
    {
    echo $beginDongNum."幢".$beginFloorNum."层".$beginRoomNum."室"." <br>"; 
    }
    }
    }
    showRooms($beginRoom, $endRoom);
    ?>
      

  6.   


    function RoomIndex($h,$f,$d)
    {
      return ($h-1)*30*3+($f-1)*3+$d-1;
    }function IndexToNo($index)
    {
      $h = $f = $d = 0;

      $h = (int)($index/90)+1;

      $index = $index%90;
      $f = (int)($index/3)+1;

      $d = $index%3+1;

      return $h.'幢'.$f.'楼'.chr(96+$d).'室';
    }
    //方便起见 1~3 => a~c
    $from = RoomIndex(1,1,1);
    $to = RoomIndex(3,2,3);
    for( $i=$from; $i<=$to; $i++ )
    echo IndexToNo($i).'<br />';