Предмет: Информатика, автор: 05pl10pl2011so

За заданим натуральним числом n вивести зображення розміром n×n, утворене символами равлик та рівно як показано у прикладі.

Входові дані
Одне натуральне число n (n > 1).

Виходові дані
Вивести зображення n×n.


Лимит времени 1 секунда

Лимит использования памяти 256 MiB
Входные данные #1
5
Выходные данные #1
@@@@@
@@@@=
@@@==
@@===
@====


bossbonk86: питон?
05pl10pl2011so: так

Ответы

Автор ответа: kostyakaragiaur
0

Ответ:

=

Для створення зображення равлика нам потрібно заповнити матрицю n × n символами '=' та '@', де '@' буде означати частину равлика, яка знаходиться в лівому верхньому куті, а '=' - частину, яка знаходиться в правому нижньому куті.

Починаємо з ініціалізації матриці n × n символом '=':

scss

Copy code

matrix = [['=' for j in range(n)] for i in range(n)]

Потім змінюємо символи у матриці, починаючи з верхнього лівого кута та рухаючись вправо, донизу, вліво, догори, змінюючи напрям кожні n/2 кроків, доки не дійдемо до центру матриці.

python

Copy code

current_char = '@'

for i in range(n//2):

for j in range(i, n-i):

matrix[i][j] = current_char # верхня сторона

matrix[j][n-i-1] = current_char # права сторона

matrix[n-i-1][n-j-1] = current_char # нижня сторона

matrix[n-j-1][i] = current_char # ліва сторона

current_char = '=' if current_char == '@' else '@' # зміна символу

Останнім кроком є виведення матриці у консоль:

scss

Copy code

for i in range(n):

for j in range(n):

print(matrix[i][j], end='')

print()

Повний код для вирішення цієї задачі:

python

Copy code

n = int(input())

# ініціалізація матриці

matrix = [['=' for j in range(n)] for i in range(n)]

# заповнення матриці

current_char = '@'

for i in range(n//2):

for j in range(i, n-i):

matrix[i][j] = current_char # верхня сторона

matrix[j][n-i-1] = current_char # права сторона

matrix[n-i-1][n-j-1] = current_char # нижня сторона

matrix[n-j-1][i] = current_char # ліва сторона

current_char = '=' if current_char == '@' else '@' # зміна символу

# виведення матриці

for i in range(n):

for j in range(n):

print(matrix[i][j], end='')

print()

Зауважте, що в програмі ми використовуємо операцію "//", яка виконує цілочисельне ділення. Це необхідно, оскі

Похожие вопросы
Предмет: Алгебра, автор: munazatkarabaeva
Предмет: Физика, автор: VolkPlay110