注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

cooljun的博客

>>静静的心里 ,都有一道最美丽的风景<<

 
 
 

日志

 
 

php写环形数字表格  

2013-07-12 10:55:23|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
贴出源码:

<?php

if(isset($_GET['n']))
$n = isset($_GET['n'])?intval($_GET['n']):0; // 改变n的值 n >= 2 的整数, (1也行 ,但是1没啥用)

num_circle($n);

// var_dump($data);
function num_circle($n=0){
$n = empty($n) ? 4 : $n;
$num = 1;
$end = $n * $n;
$data = array();
$data[0][0] = $num++;

walk($num, $end, $n, 0, 0, 0, $data);

echo '<table border=1 style="border-collapse:collapse">';
foreach ($data as $k => $v) {
echo '<tr>';
ksort($v);
foreach ($v as $sk => $sv) {
echo '<td style="padding:5px;">' . $sv . '</td>';
}
echo '</tr>';
}
echo '</table>';
}


function walk(&$num, $max, $n, $x, $y, $c, &$data)
{
if ($num > $max) {
return false;
}

$c = $c % 4;

switch ($c) {
case 0:
// echo $x . ':' . $y, "\n";
fill_1($num, $n, $x, $y, $data);
break;
case 1:
// echo $x . ':' . $y, "\n";
fill_2($num, $n, $x, $y, $data);
break;
case 2:
// echo $x . ':' . $y, "\n";
fill_3($num, $n, $x, $y, $data);
break;
case 3:
// echo $x . ':' . $y, "\n";
fill_4($num, $n, $x, $y, $data);
break;
}

$c++;
walk($num, $max, $n, $x, $y, $c, $data);
}

function fill_1(&$num, $n, &$x, &$y, &$data)
{
for ($y = $y + 1; $y < $n; $y++) {
if (isset($data[$x][$y])) {
break;
}
$data[$x][$y] = $num;
$num++;
}

$y--;
}

function fill_2(&$num, $n, &$x, &$y, &$data)
{
for ($x = $x + 1; $x < $n; $x++) {
if (isset($data[$x][$y])) {
break;
}
$data[$x][$y] = $num;
$num++;
}

$x--;
}

function fill_3(&$num, $n, &$x, &$y, &$data)
{
for ($y = $y - 1; $y >= 0; $y--) {
if (isset($data[$x][$y])) {
break;
}
$data[$x][$y] = $num;
$num++;
}

$y++;
}

function fill_4(&$num, $n, &$x, &$y, &$data)
{
for ($x = $x - 1; $x >= 0; $x--) {
if (isset($data[$x][$y])) {
break;
}
$data[$x][$y] = $num;
$num++;
}
$x++;
}

?>

运行效果图:
php写环形数组表格 - cooljun - cooljun的博客php写环形数组表格 - cooljun - cooljun的博客php写环形数组表格 - cooljun - cooljun的博客
 

  评论这张
 
阅读(3)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018