1. 程式人生 > >7 順時針列印矩陣

7 順時針列印矩陣

0 引言

題目:輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字,例如,如果輸入如下4 X 4矩陣:

1     2     3    4

5     6     7    8

9     10    11   12

13    14    15   16 ,

則依次打印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

1 抽象問題具體化

列印順序為:

1)最外圈,一直到最裡圈,一圈一圈地列印;

2)最外圈的列印順序為:左上角到右上角,右上角到右下角,右下角到左下角,左下角到左上角      

2 具體問題抽象分析

 (1)外迴圈:圈子在往裡邊縮,需要直到圈子的四個邊界值,分別是:

最外圈為第0圈:橫座標範圍是(0,m-1),縱座標範圍是(0,n-1)

裡邊的圈子為:已知當前為第p圈,橫座標(p,n-1-p),縱座標範圍是(p,m-1-p)

(2)內迴圈:圈子從(p,p)點開始,一直列印到(m-1-p,n-1-p)

 

(3)考慮特殊情況:

1)m = 0,n = 0,返回空;

2)

3 demo

 

4 程式碼優化