如下圖所示
看圖, 分析, 我們可以發現乙個規律, 螺旋遞進可以分為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 按照輸入的次序,依次輸出每乙個 方陣 ...