<?php
/** * 寫乙個函式有乙個整數的引數(>=3),根據這個整數輸出圖形
* n = 3
* 3 4 5
* 10 11 6
* 9 8 7
* 思路
* 1,用乙個二維陣列存放這個矩陣
* $arr = array(
* array(0,0,0),
* array(0,0,0),
* array(0,0,0),
* );
* 2,矩陣的資料的變化模擬為上下左右的移動,移動一下加1
* 移動的演算法是陣列的下標的變化
* 向右移動 $y++
* 向下移動 $x++
* 向左移動 $y--
* 向上移動 $x--
* 3,移動的條件
* 比如向右移動,
* a,不能超出陣列這個方向的最大座標,
* b,下乙個位置沒有被占用,也就是$arr[x][y]=0。
* 其他,同理,向左和上是需要考慮最小值大於等於0
*/function jz($num)
//拼出二維陣列
for ($i=0; $i<$num; $i++)
}//初始化變數
$direction = 'r';//r 右 l 左 t 上 b下
$maxnum = $num * $num + $num -1;//計算出最後乙個數
$x = $y = 0;//放的格仔的座標
//迴圈每個數字,放到陣列相應的位置
for ($i=$num; $i<=$maxnum; $i++)
else
else
}if($direction == 'b')
else
}if($direction == 'l')
else
}if($direction == 't')
else
else}}
}$arr[$x][$y] = $i;}}
$table = '';
foreach ($arr as $k => $v)
$table .= '';
}$table .= '';
echo $table;
}jz(15);