python實現螺旋矩陣

2021-08-18 14:45:33 字數 1054 閱讀 3355

import numpy

# 使用遞迴解決

def helixmatrix(matrix,x_cur,y_cur,number,n):

if n==0:

print(matrix)

return 0

if n==1:

matrix[x_cur][y_cur]=number

print(matrix)

return 0

# 上for i in range(n):

matrix[x_cur][y_cur+i] = number

number +=1

# 右for i in range(n-1):

matrix[x_cur+i+1][y_cur+n-1] = number

number+=1

# 下for i in range(n-1):

matrix[x_cur+n-1][y_cur+n-2-i] = number

number+=1

# 左for i in range(n-2):

matrix[x_cur+n-2-i][y_cur] = number

number+=1

helixmatrix(matrix,x_cur+1,y_cur+1,number,n-2)

if __name__ == '__main__':

n = int(input("請輸入數值:"))

# 初始化陣列

if not isinstance(n, int) or n <= 0:

print("輸入引數有誤")

raise ("引數有誤")

matrix = numpy.zeros((n, n))

# x_cur相當於是x方向的座標

x_cur = 0

# y_cur相當於是y方向的座標

y_cur = 0

# number是在遞迴中傳遞的數值

number = 1

helixmatrix(matrix,x_cur,y_cur,number,n)

螺旋矩陣生成 python實現

今天偶然看見了乙個有意思的數列排序題,就嘗試著比劃了一下,確實挺有意思,蠻好玩的。特此記錄下來 螺旋矩陣樣例如下 1 2 3 4 5 6 20 21 22 23 24 7 19 32 33 34 25 8 18 31 36 35 26 9 17 30 29 28 27 10 16 15 14 13 ...

螺旋矩陣(python)

首先這類題我覺得不能想著如何去實現這個矩陣在 中,我們只需要用一些規律和代數去實現每個位置的數字即可 n,m int i for i in input split r,c int i for i in input split def abc n,m,i,j if i 1 return j if j ...

螺旋矩陣程式設計實現

今天看到google的一道面試題為 輸出如下的矩陣 輸入為方陣的行數n a 1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 9 也不知道怎麼個叫法,暫且叫它螺旋矩陣吧.瞎想了兩種實現方法,胡亂寫的,明天再看看別人怎麼做的...