Условие задачи
Для заданных натуральных чисел $n$ и $m$ вывести прямоугольную рамку размером $n \times m$ из звездочек, заполненную пробелами как показано в примере.
Входные данные
Два натуральных числа $n$ и $m \; (n, m \leqslant 100)$.
Выходные данные
Выведите прямоугольную рамку размером $n \times m$.
Тесты
№ | Входные данные | Выходные данные | ||
1 | 4 7 |
|
||
2 | 2 8 |
|
||
3 | 3 3 |
|
||
4 | 3 2 |
|
Программный код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if ((i == 0) or (j == 0) or (i == n - 1) or (j == m - 1)) cout << "*"; else cout << " "; } cout << endl; } return 0; } |
Решение
Для получения рамки нужно заполнить первые и последние строки символом $*$ . Для этого в цикле будем проверять равенство столбцов $0$, $(m-1)$ и строк $0$ , $(n-1)$. В случае равенства выводить символ. Таким образом получим рамку.
Ссылки
Условие задачи на e-olymp
Код программы на ideone
Спасибо, исправил!