Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Java-программисты, подскажите, как вывести на консоль данную фигуру?

Мария Волуева Ученик (183), на голосовании 3 месяца назад
Никак не могу найти логику, чтобы поставить условие if
Голосование за лучший ответ
Саша Барановский Ученик (20) 4 месяца назад
Умножить
Мария ВолуеваУченик (183) 4 месяца назад
Умножила, и то, что даёт тру и то, что фолз, но условие так и не могу поставить. Так как есть в обоих числа кратные 5 и нули. Александр, как быть? Спасибо вам за ответ?
Sfera Искусственный Интеллект (192055) 4 месяца назад
это они все для мамы программисты
Мария ВолуеваУченик (183) 4 месяца назад
Надеюсь нет
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (263750) 4 месяца назад
В лоб можно сделать

 import java.util.Arrays; 
import java.util.stream.IntStream;

public class Main {
public static void main(String[] args) {
int size = 6;
int[][] matrix = fillMatrix(size);
printMatrix(matrix);
}

public static int[][] fillMatrix(int size) {
int[][] matrix = new int[size][size];

Arrays.setAll(matrix, i -> {
int[] row = new int[size];
Arrays.setAll(row, j -> isCornerOrAdjacent(i, j, size) ? 1 : 0);
return row;
});

return matrix;
}

private static boolean isCornerOrAdjacent(int i, int j, int size) {
return ((i % (size - 1) == 0) && (j <= 1 || j >= size - 2)) ||
((j % (size - 1) == 0) && (i <= 1 || i >= size - 2)) ||
((i == 1 || i == size - 2) && (j == 0 || j == size - 1));
}

public static void printMatrix(int[][] matrix) {
IntStream.range(0, matrix.length).forEach(i -> {
IntStream.range(0, matrix[i].length).forEach(j -> System.out.print(matrix[i][j] + " "));
System.out.println();
});
}
}
1 1 0 0 1 1
1 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 1
1 1 0 0 1 1
Мария ВолуеваУченик (183) 4 месяца назад
Ого, спасибо вам) а с помощью цикла for не получится? Я сейчас внимательно посмотрю ваш ответ, спасибо ещё раз!!
Мария ВолуеваУченик (183) 4 месяца назад
А вы не хотите на мне жениться?
Мария Волуева, я хочу
АлександрИскусственный Интеллект (301529) 4 месяца назад
автор вопроса в джаве на таком начальном уровне что лямбда будет перебором...
Александр Искусственный Интеллект (301529) 4 месяца назад
 for(int i = 0; i <= 2; i++) { 
for(int j = 0; j <= 2; j++) {
if (i+j > 1) {
System.out.print(1);
} else {
System.out.print(0);
}
}
for(int j = 2; j >= 0; j--) {
if (i+j > 1) {
System.out.print(1);
} else {
System.out.print(0);
}
}
System.out.println();
}
for(int i = 2; i >= 0; i--) {
for(int j = 0; j <= 2; j++) {
if (i+j > 1) {
System.out.print(1);
} else {
System.out.print(0);
}
}
for(int j = 2; j >= 0; j--) {
if (i+j > 1) {
System.out.print(1);
} else {
System.out.print(0);
}
}
System.out.println();
}
вам же не задали найти оптимальный вариант, а просто продемонстрировать навыки использования for и if, не так ли?
потому так и делаем...
Похожие вопросы