Advertisement
Shokedbrain

Snake

Dec 5th, 2021
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.16 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7.     public static void main(String[] args) {
  8.         Scanner sc=new Scanner(System.in);
  9.         int c;
  10.         do{
  11.             System.out.println("1. Горизонтальная 2. Вертикальная 3. По спирали 0. Выход");
  12.             System.out.print("Ваш выбор ");
  13.             c=sc.nextInt();
  14.             if (c!=0){
  15.                 System.out.println("Задайте размер массива N ");
  16.                 int n=sc.nextInt();
  17.                 switch (c){
  18.                     case 1: print(horizontal(n)); break;
  19.                     case 2: print(vertical(n)); break;
  20.                     case 3: print(spiral(n)); break;
  21.                 }
  22.             }
  23.         } while (c!=0);
  24.     }
  25.     static int [][] horizontal(int n){
  26.         int a[][]=new int [n][n];
  27.         int i=0, j=0, dj=1;
  28.         for (int k=1; k<=n*n; k++){
  29.             a[i][j]=k;
  30.             j=j+dj;
  31.             if (j==n || j==-1) {
  32.                 dj*=-1;
  33.                 i++;
  34.                 j+=dj;
  35.             }
  36.         }
  37.         return a;
  38.     }
  39.     static int [][] vertical(int n){
  40.         int a[][]=new int [n][n];
  41.         int i=0, j=0, dj=1;
  42.         for (int k=1; k<=n*n; k++){
  43.             a[j][i]=k;
  44.             j=j+dj;
  45.             if (j==n || j==-1) {
  46.                 dj*=-1;
  47.                 i++;
  48.                 j+=dj;
  49.             }
  50.         }
  51.         return a;
  52.     }
  53.     static void print(int b[][]){
  54.         for (int i=0; i<b.length; i++){
  55.             for (int j=0; j<b[i].length; j++)
  56.                 System.out.print(b[i][j]+"\t");
  57.             System.out.println();
  58.         }
  59.     }
  60.     static int [][] spiral(int n){
  61.         int a[][]=new int [n][n];
  62.         int i=0, j=n-1;
  63.         int value = n*n;
  64.         while (n != 0){
  65.             int k = 0;
  66.             do {a[i][j--] = value--;} while (++k < n-1);
  67.             for (k = 0; k <n-1;k++) a[i++][j] = value--;
  68.             for (k = 0; k <n-1;k++) a[i][j++] = value--;
  69.             for (k = 0; k <n-1;k++) a[i--][j] = value--;
  70.             ++i; --j; n = n < 2 ? 0: n-2;
  71.         }
  72.         return a;
  73.     }
  74. }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement