PHP打印环状数字圈
程序员文章站
2022-06-17 15:01:46
...
如题:
$i=[number];
打印如下的图形:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
$i=[number];
打印如下的图形:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
- /**
- * 二维数组排序
- * @param array $array
- */
- function sort_recursive(&$array){
- foreach($array as $key=>$edge){
- ksort($edge,true);
- $array[$key]=$edge;
- }
- ksort($array,true);
- }
- /**
- * 生成一圈环状数字
- * @param array $cotainer 二维数组,包含生成的圈
- * @param int $start_value 该圈的起始值
- * @param int $x 该圈的偏移值
- * @param int $grids_edge 每条边的数字个数
- */
- function generate(&$container,$start_value,$x,$grids_edge){
- $rec_times=ceil($grids_edge/2);
- $center=$grids_edge&1?false:$start_value+4*$rec_times*($rec_times+1);
- if($center){
- $index=$x+ceil($grids_edge/2);
- $container[$index][$index]=$center;
- }
- for($i=0;$i$grids_edge;$i++){
- $right=$x+$grids_edge;
- $basevalue=$start_value+$i;
- $container[$x][$x+$i]=$base_value;
- $container[$x+$i][$right]=$grids_edge+$base_value;
- $container[$right][$right-$i]=$grids_edge*2+$base_value;
- $container[$right-$i][$x]=$grids_edge*3+$base_value;
- }
- }
- $container=array();
- $data=array(
- 1 =>array(1,6),
- 25=>array(2,4),
- 41=>array(3,2),
- );
- /*
- $data=array(
- 1 =>array(1,2),
- );
- $data=array(
- 1&
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
下一篇: MySQL集群自动安装脚本