順時針列印矩陣

2021-09-25 20:19:09 字數 1123 閱讀 9577

題目:

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。

分析,將矩陣看成乙個個的圓圈,左上角的頂點就是(start,start),

• 最大行數為:x=rows-1-start;

• 最大列數為:y=columns-1-start;

• 只需要確定4個頂點就行:

• (start,start)

• (start,y)

• (x,y)

• (x,start)

• 然後在矩陣輸出時判斷好能輸出的條件就行。

• 從左往右(start,start)到(start,y):判斷矩陣存在後直接輸出;

• 從上外下(start,y)到(x,y):需要x>start;

• 從右往左(x,y)到(x,start):需要x>start且y>start;

• 從下往上(x,start)到(start,start):需要x-1>start且

y>start。

package com.helan.d;

public class printfmatrixincircle

int start=0;

int x=col-1-start;

int y=row-1-start;

while(col>start*2 && row>start*2)

if(start=start;i--)

}if(x-1>start &&start=start+1;i--)

}start++;

x--;

y--;}}

private static void printnumber(int number)

// ********************測試**********************

private static void test(int rows, int cols)

}printfmatrixincircle(numbers, cols, rows);

system.out.printf("\n");

}public static void main(string args)

}

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 45 6 7 89 10 11 1213 14 15 16則依次列印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。這個題目 寫的並不好感覺,好多if看著就煩,就是...

順時針列印矩陣

題目 給定乙個矩陣,從外向內順時針列印矩陣中的每乙個數字。例如 給定矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 輸出應該為 分析 這道題的意思非常直觀,給人的感覺也是so easy,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...

順時針列印矩陣

from 題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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。網上聽說聽到包括autod...