欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP打印环状数字圈

程序员文章站 2022-05-30 10:47:55
...
如题:
$i=[number];
打印如下的图形:

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

  1. /**
  2. * 二维数组排序
  3. * @param array $array
  4. */
  5. function sort_recursive(&$array){
  6. foreach($array as $key=>$edge){
  7. ksort($edge,true);
  8. $array[$key]=$edge;
  9. }
  10. ksort($array,true);
  11. }
  12. /**
  13. * 生成一圈环状数字
  14. * @param array $cotainer 二维数组,包含生成的圈
  15. * @param int $start_value 该圈的起始值
  16. * @param int $x 该圈的偏移值
  17. * @param int $grids_edge 每条边的数字个数
  18. */
  19. function generate(&$container,$start_value,$x,$grids_edge){
  20. $rec_times=ceil($grids_edge/2);
  21. $center=$grids_edge&1?false:$start_value+4*$rec_times*($rec_times+1);
  22. if($center){
  23. $index=$x+ceil($grids_edge/2);
  24. $container[$index][$index]=$center;
  25. }
  26. for($i=0;$i$grids_edge;$i++){
  27. $right=$x+$grids_edge;
  28. $basevalue=$start_value+$i;
  29. $container[$x][$x+$i]=$base_value;
  30. $container[$x+$i][$right]=$grids_edge+$base_value;
  31. $container[$right][$right-$i]=$grids_edge*2+$base_value;
  32. $container[$right-$i][$x]=$grids_edge*3+$base_value;
  33. }
  34. }
  35. $container=array();
  36. $data=array(
  37. 1 =>array(1,6),
  38. 25=>array(2,4),
  39. 41=>array(3,2),
  40. );
  41. /*
  42. $data=array(
  43. 1 =>array(1,2),
  44. );
  45. $data=array(
  46. 1&PHP打印环状数字圈

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。