Home >Backend Development >PHP Tutorial > 请问两个算法的题目

请问两个算法的题目

WBOY
WBOYOriginal
2016-06-13 13:37:201117browse

请教两个算法的题目
1.已知矩形O的宽$ow,高$oh,在保持O的比例不变的情况下将O缩放为宽不大于$dw,高不大于$dh,且面积最大的矩形D,求矩形D的宽$nw和高$nh

2.a.实现函数function print($m,$n);$m为行,$n为列,返回一个二维数组,格式类似于下图
  1 2 3 4 5 
  10 9 8 7 6
  11 12 13 14 15
  20 19 18 17 16

  b.实现函数function convert($array),$array为一个二维数组,返回一个二维数组,于$array的关系如上图和下图对应
  16 17 18 19 20 
  15 14 13 12 11
  6 7 8 9 10
  5 4 3 2 1

请各位不吝赐教,谢谢!

------解决方案--------------------
这是学校老师布置的作业吧?
好好想一想,理清思路不会太难
1:就一个等比公式,判断下就好了

2:偶数,奇数行的规律

3:和上面的一样,求出最大数就行了。
------解决方案--------------------

PHP code
<?php // 1
$rate=min($dw/$ow,$dh/$oh);
$nw=$ow*$rate;
$nh=$oh*$rate;

// 2
function _print($m,$n){
    for($i=1;$i<$m;$i++){
        $c=range(($i-1)*$n+1,$i*$n);
        $arr[$i]=$i%2!=0?$c:array_reverse($c);
    }
    return $arr;
}
$array=_print(5,5);
print_r($array);

// 3
function convert($array){
    foreach(array_reverse($array) as $k=>$a){
        $arr[$k]=array_reverse($a);
    }
    return $arr;
}
print_r(convert($array)); <div class="clear">
                 
              
              
        
            </div>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn