Условие
По заданному нечетному натуральному числу [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 37 38 39 40 41 42 |
import java.util.*; import java.lang.*; import java.io.*; import java.util.Scanner; public class Main { public static void main (String[] args) throws java.lang.Exception { Scanner l= new Scanner(System.in); int n= l.nextInt(); // Создаем матрицу для хранения всех ответов int [][]x = new int [n][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){ System.out.print("*"); } else System.out.print(" "); } System.out.println(" "); } } } |
Решение задачи
Считываем значение [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].
Задача на e-olymp
Засчитанное решение на e-olymp
Код в ideone