Pytanie: podano liczbę całkowitą N, drukowanie numery od 1 do n tak:kwadratowy logiczna roztwór
n = 4
wyniku:
01 02 03 04
12 13 14 05
11 16 15 06
10 09 08 07
Jak czy rozwiązujesz go (oprócz rozwiązania podanego w linku poniżej)?
http://www.programmersheaven.com/mb/CandCPP/81986/81986/problem-in-making-ap-c++-program/?S=B20000
szukam w innym kierunku. Do tej pory staram się dowiedzieć, czy mogę uzyskać uporządkowaną listę pozycji, które muszę wypełnić.
Oto, na co patrzę: czy istnieje sposób na uzyskanie "fdisp", aby rozwiązać problem w ten sposób, zamiast "chodzić" w matrycy?
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
n = len(matrix)
# final disposition wrote by hand: how to get it for arbitrary n?
fdisp = [(0,0), (0,1), (0,2), (0,3), (1,3), (2,3), (3,3), (3,2),
(3,1), (3,0), (2,0), (1,0), (1,1), (1,2), (2,2), (2,1)]
for val,i in enumerate(fdisp):
matrix[i[0]][i[1]] = val + 1
def show_matrix(matrix, n):
for i,l in enumerate(matrix):
for j in range(n):
print "%d\t" % matrix[i][j],
print
show_matrix(matrix, n)
Pokaż nam, że próbujesz samodzielnie rozwiązać problem. –
Czy można to rozwiązać w pamięci O (n)? –
Głosowano za zamkniętymi drzwiami - nie wykonano żadnego prawdziwego wysiłku ze strony osoby pytającej. –