import copy
while True:
try:
j,i,M=map(int,input().split());to=[]
for b in range(j):
a=list(map(int,input().split()))
to.append(a) #to為題目一開始的2維陣列
a=list(map(int,input().split()))
a.reverse() #執行動作
for b in a:
if b==1:
to.reverse() #當指令為1 翻轉陣列
else:
z=[]
for b in range(i-1,-1,-1):
k=[]
for v in range(j):
k.append(to[v][b]) #當指令為0 向左轉90 度
z.append(k)
to=copy.deepcopy(z) #本來認為是這裡出錯
print(to) #這是要輸出的陣列
except:
break
我本來是認為陣列 Z 和 to 是連動的,所以當前面敘述z=[]時to 也會艮著變 [] 但後來換成深度複製 結果還是沒有改善,想知道還有哪裡有問題
import copy
while True:
try:
j,i,M=map(int,input().split());to=[]
for b in range(j):
a=list(map(int,input().split()))
to.append(a) #to為題目一開始的2維陣列
a=list(map(int,input().split()))
a.reverse() #執行動作
for b in a:
if b==1:
to.reverse() #當指令為1 翻轉陣列
else:
z=[]
for b in range(i-1,-1,-1):
k=[]
for v in range(j):
k.append(to[v][b]) #當指令為0 向左轉90 度
z.append(k)
to=copy.deepcopy(z) #本來認為是這裡出錯
print(to) #這是要輸出的陣列
except:
break
我本來是認為陣列 Z 和 to 是連動的,所以當前面敘述z=[]時to 也會艮著變 [] 但後來換成深度複製 結果還是沒有改善,想知道還有哪裡有問題
問題應該是出在旋轉矩陣的地方,你的i跟j都是固定的,應該要隨著矩陣旋轉做變化,例如3x2旋轉之後要變成2x3、再旋轉又變成3x2