代码拉取完成,页面将自动刷新
<?php
/*
根据一个数输出这个图形,例如n=3:
3 4 5
10 11 6
9 8 7
函数:
思路:
1,初始化多维数组
$array[$i][$j]
$array=array(
array(0,0,0),
array(0,0,0),
array(0,0,0)
)
2,移动
向上移动$array[$i--][$j]
向下移动$array[$i++][$j]
向左移动$array[$i][$j--]
向右移动$array[$i][$j++]
*/
function test($n){
if($n<3){
die("数字必须大于三");
}
/*1,初始数组*/
for($x=0;$x<$n;$x++){
for($y=0;$y<$n;$y++){
$arr[$x][$y]=0;
}
}
/*2,初始化几个变量*/
$direction='R';//R(右),L(左),T(上),B(下)
$maxn=$n*$n+$n-1;//计算最后一个数字
$x=$y=0;
/*3,循环每个数字,放到数组*/
for($i=$n;$i<=$maxn;$i++){
if($arr[$x][$y]==0){
$arr[$x][$y]=$i;
}else{
if($direction == 'R'){
if(($y+1) < $n && $arr[$x][$y+1] == 0){
$y++;
}else {
$direction = 'B';
}
}
if($direction == 'B'){
if(($x+1) < $n && $arr[$x+1][$y] == 0){
$x++;
}else {
$direction = 'L';
}
}
if($direction == 'L'){
if(($y-1) >= 0 && $arr[$x][$y-1] == 0){
$y--;
}else {
$direction = 'T';
}
}
if($direction == 'T'){
if(($x-1) >= 0 && $arr[$x-1][$y] == 0){
$x--;
}else{
$direction = 'R';
if($direction == 'R'){
if(($y+1) < $n && $arr[$x][$y+1] == 0){
$y++;
}else {
$direction = 'B';
}
}
}
}
/*放入值*/
$arr[$x][$y]=$i;
}
}
$table="<table border='1'>";
foreach ($arr as $k1 => $v1) {
$table.="<tr>";
foreach ($v1 as $k2 => $v2) {
$table.="<td>$v2</td>";
}
$table.="</tr>";
}
$table.="</table>";
echo $table;
}
test(3);
?>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。