Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main {
- public static void NechMS(int[][] mas, int n) {//случай матрицы нечетного размера
- int i = n / 2;
- int j = n - 1;
- for (int num = 1; num <= n * n;) {
- if (i == -1 && j == n) {
- j = n - 2;
- i = 0;
- } else {
- if (j == n) {
- j = 0;
- }
- if (i < 0) {
- i = n - 1;
- }
- }
- if (mas[i][j] != 0) {
- j -= 2;
- i++;
- continue;
- } else {
- mas[i][j] = num++;
- }
- j++;
- i--;
- }
- }
- public static void Cratn2MS(int[][]mas,int n) {//случай матрицы кратной 4
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- mas[i][j] = (n * i) + j + 1;
- }
- }
- for (int i = 0; i < n / 4; i++) {
- for (int j = 0; j < n / 4; j++) {
- mas[i][j] = (n * n + 1) - mas[i][j];
- }
- }
- for (int i = 0; i < n / 4; i++) {
- for (int j = 3 * (n / 4); j < n; j++) {
- mas[i][j] = (n * n + 1) - mas[i][j];
- }
- }
- for (int i = 3 * n / 4; i < n; i++) {
- for (int j = 0; j < n / 4; j++) {
- mas[i][j] = (n * n + 1) - mas[i][j];
- }
- }
- for (int i = 3 * n / 4; i < n; i++) {
- for (int j = 3 * n / 4; j < n; j++) {
- mas[i][j] = (n * n + 1) - mas[i][j];
- }
- }
- for (int i = n / 4; i < 3 * n / 4; i++) {
- for (int j = n / 4; j < 3 * n / 4; j++) {
- mas[i][j] = (n * n + 1) - mas[i][j];
- }
- }
- }
- public static void first() {
- int n;
- int[] mas;
- Scanner in = new Scanner(System.in);
- System.out.print("Введите размерность массива: ");
- n = in.nextInt();
- mas = new int[n];
- System.out.println("Элементы массива:");
- Random random = new Random();
- for (int i = 0; i < mas.length; i++) {
- mas[i] = random.nextInt(16);
- System.out.print(mas[i] + " ");
- }
- System.out.print("\nВведите a: ");
- int a = in.nextInt();
- System.out.print("Введите b: ");
- int b = in.nextInt();
- if (a > b) {
- int buf = a;
- a = b;
- b = buf;
- }
- for (int i = 0; i < mas.length - 1; i++) {
- if ((mas[i] % 2) == 0 && (i > a && i < b)) {
- mas[i] = mas[i - 1] + mas[i + 1];
- }
- }
- System.out.println("\nНовый массив:");
- for (int i = 0; i < mas.length; i++) {
- System.out.print(mas[i] + " ");
- }
- }
- public static void second() {
- int[][] mas;
- int n, m;
- Scanner in = new Scanner(System.in);
- System.out.print("Введите размер магического квадрата: ");
- n = in.nextInt();
- mas = new int[n][n];
- if (n == 2) {
- System.out.println("\nМагического квадрата порядка 2 не существует");
- return;
- }else if(n%2==0){
- Cratn2MS(mas,n);
- }
- else if(n%2==1){
- NechMS(mas,n);
- }
- System.out.println(
- "\nМагический квадрат:");
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < mas.length; j++) {
- System.out.print(mas[i][j] + " ");
- }
- System.out.println();
- }
- }
- public static void main(String[] args) {
- first();
- System.out.println("\n");
- second();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement