From 6d96ee1ce026c3f7d1b65a35845e8140bad0b275 Mon Sep 17 00:00:00 2001 From: qdo_ln <4yu@bk.ru> Date: Sun, 4 Aug 2019 11:26:38 +0300 Subject: [PATCH] Java3 lesson 8 homework. --- src/lesson8/Main.java | 16 +++++++++ src/lesson8/interview/SpiralArray.java | 45 ++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 src/lesson8/Main.java create mode 100644 src/lesson8/interview/SpiralArray.java diff --git a/src/lesson8/Main.java b/src/lesson8/Main.java new file mode 100644 index 0000000..b0527dc --- /dev/null +++ b/src/lesson8/Main.java @@ -0,0 +1,16 @@ +package lesson8; + +import lesson8.interview.SpiralArray; + +public class Main { + public static void main(String[] args) { + int [][] test1 = SpiralArray.feelInBySpiral(6,5); + + + + SpiralArray.printArray(test1); + System.out.println("_________________"); + + + } +} diff --git a/src/lesson8/interview/SpiralArray.java b/src/lesson8/interview/SpiralArray.java new file mode 100644 index 0000000..c65f010 --- /dev/null +++ b/src/lesson8/interview/SpiralArray.java @@ -0,0 +1,45 @@ +package lesson8.interview; + + + +public class SpiralArray { + + public static void printArray(int [][] array){ + for (int i = 0; i < array.length; i++) { + for (int j = 0; j < array[i].length; j++) { + System.out.print(array[i][j] + "\t"); + } + System.out.println(); + } + } + + public static int[][] feelInBySpiral(int x, int y) { + int[][] array = new int[x][y]; + int minX = 0, maxX = x - 1, minY = 0, maxY = x - 1; + int count = 0; + int max = x * y; + while (count < max && minX >=0) { + for (int i = minY; i <= maxY; i++) { + array[minX][i] = count; + count++; + } + minX = minX + 1; + for (int i = minX; i <= maxX; i++) { + array[i][maxY] = count; + count++; + } + maxY = maxY - 1; + for (int i = maxY; i >= minY; i--) { + array[maxX][i] = count; + count++; + } + maxX = maxX - 1; + for (int i = maxX; i >= minX; i--) { + array[i][minY] = count; + count++; + } + minY = minY + 1; + } + return array; + } +}