蛇形矩陣,回環矩陣,數字螺旋矩陣的PHP實現

2021-07-10 23:03:07 字數 1576 閱讀 2706

回環矩陣指的是乙個從一開始,不斷按照上、右、下、左順序依次增大的矩陣序列,例:

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...