螺旋方陣 JAVA版實現

2021-09-01 02:23:07 字數 1273 閱讀 2440

如下圖所示

看圖, 分析, 我們可以發現乙個規律, 螺旋遞進可以分為4個步驟

由左到右

由上到下

由右到左

由下到上

將其分為4個小步驟之後我們又可以發現, 每當執行完這4個步驟後, 螺旋方陣的階次就減少了2, (例如, 當前圖 5階方陣執行完4個步驟, 變成了3階方陣)

每一步賦值時, 首尾的地方會重複, 則第一步賦值由首位開始, 第二步賦值則向下偏移一位, 避免重複, 下面兩步也是如此, 需要偏移一位賦值

首先, 我們對方陣建立乙個二維座標系, 如下圖

我們使用乙個二維陣列來承載這個方陣 int matrix = new int[n][n];, 這樣就變得非常簡單了

以從左到右這步為例子,  我們只需要 確定3個數字既可以完成賦值, 分別為左上點, 左右點, 以及y值,

對**進行分析

左上點為int lt = (m - n) / 2;      即為, 原方陣的階次 減去 當前方陣的階次 再除以 2 , 以為方陣縮小是向著中心縮小, 左右都一起縮小

則除以二, 既可以得到左上 點, 以後 個點都是由此方法得到的

PAT螺旋方陣

題目 所謂 螺旋方陣 是指對任意給定的nn n,將1到n nn times nn n的數字從左上角第1個格仔開始,按順時針螺旋方向順序填入n nn times nn n的方陣裡。本題要求構造這樣的螺旋方陣。輸入在一行中給出乙個正整數nn n 10 10 10 輸出n nn times nn n的螺旋...

PTA 螺旋方陣

所謂 螺旋方陣 是指對任意給定的nnn,將1到n nn times nn n的數字從左上角第1個格仔開始,按順時針螺旋方向順序填入n nn times nn n的方陣裡。本題要求構造這樣的螺旋方陣。輸入格式 輸入在一行中給出乙個正整數nnn 10 10 10 輸出格式 輸出n nn times nn...

O 螺旋方陣

description 的螺旋方陣當n 5和n 3時分別是如下的形式 請給出乙個程式,對於任意的輸入 0 11 輸出按照上面規律所獲得的 的螺旋方陣。input 輸入第一行為整數 0 10 代表有 組輸入 接下來是 行資料,每行輸入乙個 0 11 output 按照輸入的次序,依次輸出每乙個 方陣 ...