Advertisement
User3222

Untitled

Dec 9th, 2019 (edited)
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. public class Main {
  2. public static void NechMS(int[][] mas, int n) {//случай матрицы нечетного размера
  3. int i = n / 2;
  4. int j = n - 1;
  5. for (int num = 1; num <= n * n;) {
  6.  
  7. if (i == -1 && j == n) {
  8. j = n - 2;
  9. i = 0;
  10.  
  11. } else {
  12. if (j == n) {
  13. j = 0;
  14. }
  15. if (i < 0) {
  16. i = n - 1;
  17. }
  18.  
  19. }
  20. if (mas[i][j] != 0) {
  21.  
  22. j -= 2;
  23.  
  24. i++;
  25.  
  26. continue;
  27.  
  28. } else {
  29. mas[i][j] = num++;
  30. }
  31. j++;
  32. i--;
  33. }
  34. }
  35.  
  36.  
  37. public static void Cratn2MS(int[][]mas,int n) {//случай матрицы кратной 4
  38. for (int i = 0; i < n; i++) {
  39. for (int j = 0; j < n; j++) {
  40. mas[i][j] = (n * i) + j + 1;
  41. }
  42. }
  43. for (int i = 0; i < n / 4; i++) {
  44. for (int j = 0; j < n / 4; j++) {
  45. mas[i][j] = (n * n + 1) - mas[i][j];
  46. }
  47. }
  48. for (int i = 0; i < n / 4; i++) {
  49. for (int j = 3 * (n / 4); j < n; j++) {
  50. mas[i][j] = (n * n + 1) - mas[i][j];
  51. }
  52. }
  53. for (int i = 3 * n / 4; i < n; i++) {
  54. for (int j = 0; j < n / 4; j++) {
  55. mas[i][j] = (n * n + 1) - mas[i][j];
  56. }
  57. }
  58. for (int i = 3 * n / 4; i < n; i++) {
  59. for (int j = 3 * n / 4; j < n; j++) {
  60. mas[i][j] = (n * n + 1) - mas[i][j];
  61. }
  62. }
  63. for (int i = n / 4; i < 3 * n / 4; i++) {
  64. for (int j = n / 4; j < 3 * n / 4; j++) {
  65. mas[i][j] = (n * n + 1) - mas[i][j];
  66. }
  67. }
  68.  
  69. }
  70.  
  71.  
  72.  
  73. public static void first() {
  74. int n;
  75. int[] mas;
  76. Scanner in = new Scanner(System.in);
  77. System.out.print("Введите размерность массива: ");
  78. n = in.nextInt();
  79. mas = new int[n];
  80. System.out.println("Элементы массива:");
  81. Random random = new Random();
  82. for (int i = 0; i < mas.length; i++) {
  83. mas[i] = random.nextInt(16);
  84. System.out.print(mas[i] + " ");
  85. }
  86. System.out.print("\nВведите a: ");
  87. int a = in.nextInt();
  88. System.out.print("Введите b: ");
  89. int b = in.nextInt();
  90. if (a > b) {
  91. int buf = a;
  92. a = b;
  93. b = buf;
  94. }
  95. for (int i = 0; i < mas.length - 1; i++) {
  96. if ((mas[i] % 2) == 0 && (i > a && i < b)) {
  97. mas[i] = mas[i - 1] + mas[i + 1];
  98. }
  99. }
  100. System.out.println("\nНовый массив:");
  101. for (int i = 0; i < mas.length; i++) {
  102. System.out.print(mas[i] + " ");
  103. }
  104. }
  105.  
  106. public static void second() {
  107. int[][] mas;
  108. int n, m;
  109. Scanner in = new Scanner(System.in);
  110. System.out.print("Введите размер магического квадрата: ");
  111. n = in.nextInt();
  112. mas = new int[n][n];
  113. if (n == 2) {
  114. System.out.println("\nМагического квадрата порядка 2 не существует");
  115. return;
  116. }else if(n%2==0){
  117. Cratn2MS(mas,n);
  118. }
  119. else if(n%2==1){
  120. NechMS(mas,n);
  121. }
  122.  
  123. System.out.println(
  124. "\nМагический квадрат:");
  125. for (int i = 0; i < n; i++) {
  126. for (int j = 0; j < mas.length; j++) {
  127. System.out.print(mas[i][j] + " ");
  128. }
  129. System.out.println();
  130. }
  131.  
  132. }
  133.  
  134. public static void main(String[] args) {
  135. first();
  136. System.out.println("\n");
  137. second();
  138. }
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement