кодесурса

Упражнения на Java: создание спирального массива размером n * n из заданного целого числа n

script1adsense2code
script1adsense3code

Java Basic: упражнение 196 с решением

Напишите Java-программу для создания спирального массива n * n размеров из заданного целого числа n.

Введите номер: 3
Выход:
1 2 3
8 9 4
7 6 5

Иллюстрированная презентация:


Пример решения:

Java-код:

import java.util.*;
public class Solution {       
    public static void main(String[] args) {
		Scanner in = new Scanner(System.in);	
        System.out.print("Input a number: ");
        int n = in.nextInt(); 
        int[][] result = spiral_Array(n);
		System.out.print("Spiral array becomes:\n");
		for(int i = 0; i < result.length; i++)
        {
          for(int j = 0; j < result[i].length; j++)
          {
             System.out.print(result[i][j]);
             if(j < result[i].length - 1) System.out.print(" ");
            }
         System.out.println();
           }
	   }
   public static int[][] spiral_Array(int n) {
        int[][] temp = new int[n][n];
        int[] dx = new int[]{0, 1, 0, -1};
        int[] dy = new int[]{1, 0, -1, 0};
        int x, y, d;
        int i, j, nx, ny;        
        for (i = 0; i < n; ++i) 
		{
            for (j = 0; j < n; ++j)
				{
                temp[i][j] = -1; 
            }
        }        
        x = 0;
        y = 0;
        d = 0;
        for (i = 1; i <= n * n; ++i) 
		{
            temp[x][y] = i;  
            nx = x + dx[d];
            ny = y + dy[d];
            if (nx < 0 || nx >= n || ny < 0 || ny >= n || temp[nx][ny] != -1) {
                d = (d + 1) % 4;
                nx = x + dx[d];
                ny = y + dy[d];
            }         
            x = nx;
            y = ny;
        }        
        return temp;
    }
}

Пример вывода:

 Введите число: 5
Спиральный массив становится:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9 

Блок - схема:

«Блок-схема:
«Блок-схема:

Редактор кода Java:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на Java, чтобы проверить, могут ли три заданные длины стороны (целые числа) составлять треугольник или нет
Далее: Напишите программу на Java, чтобы проверить, является ли данное число (положительное целое число) идеальным квадратом или нет.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code