回環矩陣指的是乙個從一開始,不斷按照上、右、下、左順序依次增大的矩陣序列,例:
1 2 3
8 9 4
7 6 5
現在要求:例:輸入: m、n,分別代表行數和列數
輸出: m * n 的回環矩陣
輸入:
7 8
輸出:
1 2 3 4 5 6 7 8
26 27 28 29 30 31 32 9
25 44 45 46 47 48 33 10
24 43 54 57 56 49 34 11
23 42 53 52 51 50 35 12
22 41 40 39 38 37 36 13
21 20 19 18 17 16 15 14
接下來我們用 php 來實現,這裡我們將其封裝成函式呼叫
直接按照上、右、下、左的順序進行遍歷,計算好遍歷層數就ok了
function
snake
($row = 5, $col = 5)
// 右
for ($r = $startx + 1; $r
< $height; $r++)
// 下
for ($d = $u - 1 - 1; $d >= $starty; $d--)
// 左
for ($l = $r - 1 - 1; $l >= $startx + 1; $l--)
}// 輸出
for ($i = 0; $i
< $row; $i++)
echo"";
}}snake(7, 8);
這種思路與第一種思路類似,不過是通過乙個while
全部遍歷,然後通過乙個標誌位up right down left
來判斷與修改當前方向,通過while
內的if
來對標誌位進行判斷,這種就不貼**了
使用乙個迭代器來控制方向,然後進行 m * n 次迴圈,通過判斷寬高和isset
來確定是否轉彎,思路很棒,**量大大減少,表示沒有想到這種方式。。
/* *
*@param $w : 寬
*@param $h : 高
*@param $s : 起始數字
*@param $x, $y : 起始位置座標 只能從四頂點開始
*@param $r :方向 預設順時間 false為逆時針
*@author :
* */
function
print_matrix
($w, $h, $s = 1, $l = 1, $x = 0, $y = 0, $r = true) else
}// 列印
for ($i = 0; $i
< $h; $i++)
echo"";
}}
螺旋矩陣 蛇形矩陣
問題描述 給定乙個包含m行n列的m x n矩陣,程式設計按照螺旋順序,輸出該矩陣中的所有元素。輸入有多個矩陣。每個矩陣資料的第1行有兩個整數m和n,接著是乙個mxn矩陣的描述,有m行,每行有n個整數 輸出對每個矩陣資料,按照螺旋順序輸出矩陣陣列的元素。輸入樣例 3 31 2 3 4 5 6 7 8 ...
螺旋矩陣和蛇形矩陣
include include using namespace std define pi 3.14 class a define n 6 int s n n int matrix 8 define maxsize 100 int a maxsize maxsize void creat sz in...
蛇形矩陣 和螺旋矩陣
1.蛇形方陣 1 2 3 6 5 4 7 8 9 外層控制層數,內層根據列數控制方向 0 則往右走 n 1則往左走 include include include define size 100 int a size size int main int argc,const char argv el...