Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 18.03.2023
Сообщений: 60

Прямоугольник 4

08.10.2023, 14:12. Показов 1339. Ответов 4

Студворк — интернет-сервис помощи студентам
Приветствую Господа!

Сссылка на задачу:
https://stepik.org/lesson/6490... nit=645731

Задача такая:

Прямоугольник 4
Напишите программу для вывода прямоугольника размером n x m с рисунком внутри. Смотрите примеры.

Входные данные
Вводится целое число n высота и m ширина - каждое на отдельной строке. n, m >= 5.

Выходные данные
Выводится n строк - прямоугольник из символов.

Sample Input 1:

12
15
Sample Output 1:

###############
#@@@@@@@@@@@@@#
#@! !@#
#@ ! ! @#
#@ ! ! @#
#@ ! ! @#
#@ ! ! @#
#@ ! @#
#@! !@#
#@ ! ! @#
#@@@@@@@@@@@@@#
###############
Sample Input 2:

10
8
Sample Output 2:

########
#@@@@@@#
#@! !@#
#@ !! @#
#@! !@#
#@ !! @#
#@! !@#
#@ !! @#
#@@@@@@#
########
Sample Input 3:

16
15
Sample Output 3:

###############
#@@@@@@@@@@@@@#
#@! !@#
#@ ! ! @#
#@ ! ! @#
#@ ! ! @#
#@ ! ! @#
#@ ! @#
#@! !@#
#@ ! ! @#
#@ ! ! @#
#@ ! ! @#
#@ ! ! @#
#@ ! @#
#@@@@@@@@@@@@@#
###############

Намутил такое решение:

Python
1
2
3
4
5
6
7
8
9
10
n, m, k = int(input()), int(input()), 0
print('#' * m)
print('#' + '@' * (m - 2) + '#')
for _ in range(n - 4):
    x = '#@' + ''.join([('!' if k == j else ' ') for j in range((m - 4) // 2 + 1)])
    k += 1
    if k == (m - 4) // 2 + 1: k = 0
    print(x + x[:-1][::-1])
print('#' + '@' * (m - 2) + '#')
print('#' * m)
Не проходит тест:

Failed test #2 of 5. Wrong answer

This is a sample test from the problem statement!

Test input:
10
8
Correct output:
########
#@@@@@@#
#@! !@#
#@ !! @#
#@! !@#
#@ !! @#
#@! !@#
#@ !! @#
#@@@@@@#
########

Your code output:
########
#@@@@@@#
#@! !@#
#@ ! ! @#
#@ ! @#
#@! !@#
#@ ! ! @#
#@ ! @#
#@@@@@@#
########
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2023, 14:12
Ответы с готовыми решениями:

Дан прямоугольник n× m. Определите, какой прямоугольник
Дан прямоугольник n× m. Определите, какой прямоугольник от него нужно отрезать, чтобы получился квадрат. Считайте два целых числа: n и...

Сделать прямоугольник из #
Дано натуральное число n . Нужно вывести прямоугольник размером 3*n з символов “#” (шырина-3,а длинна n) пример: Входные данные: ...

Прямоугольник с ctrl+z
Напишите программу, которая средствами Pygame отображает окно произвольного размера. При нажатии пользователем на левую кнопку мыши...

4
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
08.10.2023, 15:34
Лучший ответ Сообщение было отмечено Dagdarion как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def fun(m, i):
    k = (i-2) % ((m-3)//2)
    arr = [' '] * (m-4)
    arr[k] = '!'
    arr[m-5-k] = '!'
    return ''.join(arr)
 
n, m = map(int, input('n, m->').split())
print(_1 := '#' * m)
print(_2 := '#' + '@'*(m-2) + '#')
for i in range(2,n-3+1):
    print('#@' + fun(m,i) + '@#')
print(_2)
print(_1)
1
1 / 1 / 0
Регистрация: 18.03.2023
Сообщений: 60
08.10.2023, 19:00  [ТС]
idealist,
Спасибо БРО!!!!

Добавлено через 41 минуту
idealist,
Что думаете? Написал собственное решение.

Python
1
2
3
4
5
6
7
8
9
10
n, m, k = int(input()), int(input()), 0
print('#' * m)
print('#' + '@' * (m - 2) + '#')
for _ in range(n - 4):
    x = '#@' + ''.join([('!' if k - j == 0 or k + j == m - 5 else ' ') for j in range(m - 4)]) + '@#'
    k += 1
    if k == (m - 5) // 2 + 1: k = 0
    print(x)
print('#' + '@' * (m - 2) + '#')
print('#' * m)
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
08.10.2023, 19:40
Лучший ответ Сообщение было отмечено Dagdarion как решение

Решение

Ну или так:
Python
1
2
3
4
5
6
7
8
9
n, m = map(int, input('n, m->').split())
print(_1 := '#' * m)
print(_2 := '#' + '@'*(m-2) + '#')
for i in range(n-4):
    k = i % ((m-3)//2)
    p = m-4 - k*2
    print('#@' + ' '*k + ('!' if p == 1 else '!' + ' '*(p-2) + '!') + ' '*k + '@#')
print(_2)
print(_1)
1
1 / 1 / 0
Регистрация: 18.03.2023
Сообщений: 60
08.10.2023, 21:18  [ТС]
Супер!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2023, 21:18
Помогаю со студенческими работами здесь

Прямоугольник и массив
Задан целочисленный прямоугольный массив M*N Необходимо поределить прямоугольную область данного массива сумма элементов которого...

Рисуем прямоугольник
Вася решил познать азы ASCII-живописи и, как все начинающие художники, начал с рисования простых фигур. Помогите Васе написать программу...

Напечатать прямоугольник из символов
Кастомный прямоугольник m * n Напиши программу, которая запрашивает у пользователя символ и два натуральных числа: m — длина; n —...

Создайте класс «Прямоугольник»
Создайте класс «Прямоугольник», у которого необходимо реализовать два поля (ширина и высота) и несколько обязательных методов: Метод...

Прямоугольник m×n составлен из единичных квадратов
Прямоугольник m×n составлен из единичных квадратов. Некоторые из этих квадратов пусты, на остальных проведён один отрезок: любая из двух...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru