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 也不知道怎麼個叫法,暫且叫它螺旋矩陣吧.瞎想了兩種實現方法,胡亂寫的,明天再看看別人怎麼做的...