Так как используются только 3 символа L, R и V, представим их как 0, 1 и 2 соответственно. В таком случае, каждую последовательность из букв (уже цифр) мы можем рассматривать как число в трехзначной системе счисления.
Можем проверить: в условии сказано, что на 100-ом месте стоит строка RLVLL. Так как список начинается с нуля (LLLLL), то на сотом месте должно стоять число 99. Переводим в трёхзначную сс (смотрите вложение) и получаем 10200₃. Подставляем вместо 0-R, 1-R, 2-V и получаем RLVLL -- всё верно.
Теперь перейдём к задаче: нам нужно узнать последовательности под номерами 8, 81, 98, 110, 179. Переводим их в трёхзначную сс, предварительно уменьшив на 1 (т. к. последовательность начинается с нуля). Также добавим лишние нули (L) слева при необходимости, чтобы последовательность состояла из 5 символов. Смотрим:
Так как используются только 3 символа L, R и V, представим их как 0, 1 и 2 соответственно. В таком случае, каждую последовательность из букв (уже цифр) мы можем рассматривать как число в трехзначной системе счисления.
Можем проверить: в условии сказано, что на 100-ом месте стоит строка RLVLL. Так как список начинается с нуля (LLLLL), то на сотом месте должно стоять число 99. Переводим в трёхзначную сс (смотрите вложение) и получаем 10200₃. Подставляем вместо 0-R, 1-R, 2-V и получаем RLVLL -- всё верно.
Теперь перейдём к задаче: нам нужно узнать последовательности под номерами 8, 81, 98, 110, 179. Переводим их в трёхзначную сс, предварительно уменьшив на 1 (т. к. последовательность начинается с нуля). Также добавим лишние нули (L) слева при необходимости, чтобы последовательность состояла из 5 символов. Смотрим:
8 → 7₁₀ = 000 21₃ = LLLVR81 → 80₁₀ = 0 2222₃ = LVVVV98 → 97₁₀ = 10121₃ = RLRVR110 → 109₁₀ = 11001₃ = RRLLR179 → 178₁₀ = 20121₃ = VLRVR--- Python 3.7 ---
def MatrixRead(Rows, RowLength, ContType):
for row in range(Rows):
print('Enter line ' + str(row))
buff = []
[buff.append(ContType(input())) for _ in range(RowLength)]
yield buff
def MatrixSwap(Matrix, OldPos:tuple, NewPos: tuple):
Matrix[OldPos[0]][OldPos[1]], Matrix[OldPos[1]][OldPos[0]] = Matrix[NewPos[1]][NewPos[0]], Matrix[NewPos[0]][NewPos[1]]
return Matrix
def MatrixPrint(Matrix, end = '\n'):
for Row in Matrix:
print(*Row, end ='\n')
print(end)
def main():
N = int(input()) #Matrix Size
Matr =list( MatrixRead(N, N, int))
MatrixPrint(Matr) #For check
for row in range(N):
for col in range(N):
SecDiagPos = (row, N-col-1)
MainDiagPos = (row, col)
Matr = MatrixSwap(Matr, MainDiagPos, SecDiagPos)
MatrixPrint(Matr)
if __name__ == '__main__':
main()
Объяснение: