>php教程 >php手册 >PHP打印环状数字圈

PHP打印环状数字圈

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-13 10:41:341154검색

如题:
$i=[number];
打印如下的图形:

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

 

<ol class="dp-c">
<li class="alt"><span><span class="comment">/**  </span> </span></li>
<li><span><span class="comment"> * 二维数组排序  </span> </span></li>
<li class="alt"><span><span class="comment"> * @param   array $array  </span> </span></li>
<li><span><span class="comment"> */</span><span>    </span></span></li>
<li class="alt">
<span class="keyword">function</span><span> sort_recursive(&</span><span class="vars">$array</span><span>){    </span>
</li>
<li>
<span>    </span><span class="keyword">foreach</span><span>(</span><span class="vars">$array</span><span> </span><span class="keyword">as</span><span> </span><span class="vars">$key</span><span>=></span><span class="vars">$edge</span><span>){    </span>
</li>
<li class="alt">
<span>        ksort(</span><span class="vars">$edge</span><span>,true);    </span>
</li>
<li>
<span>        </span><span class="vars">$array</span><span>[</span><span class="vars">$key</span><span>]=</span><span class="vars">$edge</span><span>;    </span>
</li>
<li class="alt"><span>    }    </span></li>
<li>
<span>    ksort(</span><span class="vars">$array</span><span>,true);    </span>
</li>
<li class="alt"><span>}    </span></li>
<li><span>    </span></li>
<li class="alt">
<span class="comment">/**  </span> </li>
<li><span><span class="comment"> * 生成一圈环状数字  </span> </span></li>
<li class="alt"><span><span class="comment"> * @param   array $cotainer    二维数组,包含生成的圈  </span> </span></li>
<li><span><span class="comment"> * @param   int $start_value    该圈的起始值  </span> </span></li>
<li class="alt"><span><span class="comment"> * @param   int $x    该圈的偏移值  </span> </span></li>
<li><span><span class="comment"> * @param   int $grids_edge    每条边的数字个数  </span> </span></li>
<li class="alt"><span><span class="comment"> */</span><span>    </span></span></li>
<li>
<span class="keyword">function</span><span> generate(&</span><span class="vars">$container</span><span>,</span><span class="vars">$start_value</span><span>,</span><span class="vars">$x</span><span>,</span><span class="vars">$grids_edge</span><span>){    </span>
</li>
<li class="alt">
<span>    </span><span class="vars">$rec_times</span><span>=</span><span class="func">ceil</span><span>(</span><span class="vars">$grids_edge</span><span>/2);    </span>
</li>
<li>
<span>    </span><span class="vars">$center</span><span>=</span><span class="vars">$grids_edge</span><span>&1?false:</span><span class="vars">$start_value</span><span>+4*</span><span class="vars">$rec_times</span><span>*(</span><span class="vars">$rec_times</span><span>+1);    </span>
</li>
<li class="alt">
<span>    </span><span class="keyword">if</span><span>(</span><span class="vars">$center</span><span>){    </span>
</li>
<li>
<span>        </span><span class="vars">$index</span><span>=</span><span class="vars">$x</span><span>+</span><span class="func">ceil</span><span>(</span><span class="vars">$grids_edge</span><span>/2);    </span>
</li>
<li class="alt">
<span>        </span><span class="vars">$container</span><span>[</span><span class="vars">$index</span><span>][</span><span class="vars">$index</span><span>]=</span><span class="vars">$center</span><span>;    </span>
</li>
<li><span>    }    </span></li>
<li class="alt">
<span>    </span><span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><span class="vars">$grids_edge</span><span>;</span><span class="vars">$i</span><span>++){    </span></span>
</li>
<li>
<span>        </span><span class="vars">$right</span><span>=</span><span class="vars">$x</span><span>+</span><span class="vars">$grids_edge</span><span>;    </span>
</li>
<li class="alt">
<span>        </span><span class="vars">$basevalue</span><span>=</span><span class="vars">$start_value</span><span>+</span><span class="vars">$i</span><span>;    </span>
</li>
<li>
<span>        </span><span class="vars">$container</span><span>[</span><span class="vars">$x</span><span>][</span><span class="vars">$x</span><span>+</span><span class="vars">$i</span><span>]=</span><span class="vars">$base_value</span><span>;    </span>
</li>
<li class="alt">
<span>        </span><span class="vars">$container</span><span>[</span><span class="vars">$x</span><span>+</span><span class="vars">$i</span><span>][</span><span class="vars">$right</span><span>]=</span><span class="vars">$grids_edge</span><span>+</span><span class="vars">$base_value</span><span>;    </span>
</li>
<li>
<span>        </span><span class="vars">$container</span><span>[</span><span class="vars">$right</span><span>][</span><span class="vars">$right</span><span>-</span><span class="vars">$i</span><span>]=</span><span class="vars">$grids_edge</span><span>*2+</span><span class="vars">$base_value</span><span>;    </span>
</li>
<li class="alt">
<span>        </span><span class="vars">$container</span><span>[</span><span class="vars">$right</span><span>-</span><span class="vars">$i</span><span>][</span><span class="vars">$x</span><span>]=</span><span class="vars">$grids_edge</span><span>*3+</span><span class="vars">$base_value</span><span>;    </span>
</li>
<li><span>    }    </span></li>
<li class="alt"><span>}    </span></li>
<li><span>    </span></li>
<li class="alt"><span>    </span></li>
<li>
<span class="vars">$container</span><span>=</span><span class="keyword">array</span><span>();    </span>
</li>
<li class="alt">
<span class="vars">$data</span><span>=</span><span class="keyword">array</span><span>(    </span>
</li>
<li>
<span>    1 =></span><span class="keyword">array</span><span>(1,6),    </span>
</li>
<li class="alt">
<span>    25=></span><span class="keyword">array</span><span>(2,4),    </span>
</li>
<li>
<span>    41=></span><span class="keyword">array</span><span>(3,2),    </span>
</li>
<li class="alt"><span>);    </span></li>
<li>
<span class="comment">/*  </span> </li>
<li class="alt"><span><span class="comment">$data=array(  </span> </span></li>
<li><span><span class="comment">    1 =>array(1,2),  </span> </span></li>
<li class="alt"><span><span class="comment">);  </span> </span></li>
<li><span><span class="comment">$data=array(  </span> </span></li>
<li class="alt"><span><span class="comment">    1&						
</span></span></li>
</ol>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.