Условие
По заданному нечетному натуральному числу [latex] n [/latex] вывести изображение размером [latex] n × n [/latex], образованное символами звездочка и пробел как показано в примере.
* | * | |||
* | * | * | * | |
* | * | * | * | * |
* | * | * | * | |
* | * |
Входные данные
Одно нечетное натуральное число [latex] n (n>1)[/latex] .
Выходные данные
Вывести изображение [latex] n × n [/latex].
Тесты
Входные данные | Выходные данные | |||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
5 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
7 |
|
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#include <iostream> using namespace std; int main() { int n; cin >> n ; int ** x = new int * [n]; for (int i = 0; i < n; i++) x[i] = new int[n]; int m=(n-1)/2; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ x[i][j]=1; } for(int j=i+1;j<n-i-1;j++){ x[i][j]=0; } } for( int i=0;i<m;i++){ for (int j=0;j<n;j++){ if(x[i][j]==0) { x[n-i-1][j]=0; } } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(x[i][j]!=0){ cout<<"*"; } else cout<<" "; } cout<<endl; } return 0; } |
Решение задачи
Считываем значение [latex]n[/latex]. Создаём двумерный массив [latex] n * n [/latex] все элементы которого равны единице. Далее в цикле заполняем пространство между [latex] * [/latex] нулями. Так как позиции [latex] (i,0)[/latex] и [latex] (i,n) [/latex] всегда [latex] * [/latex], ко второму счётчику [latex] j [/latex] прибавляем единицу . На середине [latex] m = ( n — 1 ) / 2 [/latex] цикл прекращает заполнение нулями, потому в следующем цикле верхняя часть отображается в нижнюю. После чего происходит вывод двумерного массива заменяя [latex] 0=« » [/latex] и [latex] 1=«*» [/latex].
Задача на ideone
Засчитанное решение на e-olymp
Код вe-olymp
Тест для $1$ лишний, т.к. по условию $n > 1$.
Тесты для $2$ и $4$ тоже, т.к. $n$ по условию нечетное число.
Спасибо за бдительность))