順時針從外到內列印數字矩陣

2021-08-30 18:25:58 字數 1117 閱讀 6818

# 列印數字矩陣到標準輸出。

# 按順時針方向,從外到內列印矩陣。起點是矩陣的左上角。

class matrix

def initialize(width)

@n = 0

@width = width #矩陣的寬度

# 建立二維陣列

@square = array.new(@width) do

array.new(@width, 0)

endend

# 列印矩陣

def print_matrix

@square.each do |line|

line.each do |n|

printf("%-3d", n)

endputs

endend

# 填充矩陣。

# start 遍歷的起點

def fill_in_the_matrix(start)

# 結束遞迴的條件

return if start > (@width-1)/2

#從左到右遍歷

start.upto(@width-start-1) do |i|

@square[start][i] = @n += 1

end

#從上到下遍歷

(start+1).upto(@width-start-1) do |i|

@square[i][@width-start-1] = @n += 1

end#從右到左遍歷

(@width-start-2).downto(start) do |i|

@square[@width-start-1][i] = @n += 1

end#從下到上遍歷

(@width-start-2).downto(start+1) do |i|

@square[i][start] = @n += 1

endfill_in_the_matrix(start+1)

endend

m = matrix.new(argv[0].to_i)

m.fill_in_the_matrix(0)

m.print_matrix

解題 從外到內順時針列印給定矩陣(C 實現)

輸入乙個矩陣,按照從外到內以順時針依次列印每乙個數字。例如輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 則依次列印 1 2 3 4 5 10 5 10 9 8 7 6 1 6 7 8 9 4 3 2 演算法描述 利用迴圈實現,每次迴圈列印矩陣中的乙...

順時針列印陣列

面試題20 順時針列印矩陣 題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如如果輸入如下矩陣 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,1,10 我的 如下 ...

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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看著就煩,就是...