Simplemente suba el código.
Las preguntas encontradas en la prueba en línea de Tencent anoche.
Una matriz espiral se refiere a una matriz espiral. Sus números continúan creciendo desde la primera línea a la derecha, desde la primera línea a la derecha, desde la parte baja, desde la izquierda y desde hacia arriba, y el ciclo de esta manera.
import java.util.Scanner;public class mysnakematrix {private int n;//private int a[][];// Declare a matrix private int value = 1;// The value of the number in the matrix public mysnakematrix(int i) {this.n = i;a = new int[n][n];}// Calculate the number in the upper left corner of the m-th layer private int getCoRner (int m) {int escer = 1; int o = n - 1; for (int i = 0; i <m - 1; ++ i) {esquina += 4 * o; o = o - 2;} devolución de la esquina;} // El número de cada lado de cada capa de la matriz se genera // S Representa 4 direcciones, tomando valores 1, 3, 4, 4 respectivamente, representando 4 direcciones diferentes. // o Indica el valor inicial de este borde. // x representa el número de números en cada borde del lado vacío privado de la capa m -th (int s, int o, int x, int m) {int i = 0; int j = 0; switch (s) {case 1: i = m - 1; j = m - 1; for (int k = 0; k <x;++k) {a [i] [j+k] = valor;++value;} break; - 1 +x; for (int k = 0; k <x; ++ k) {a [i +k] [j] = valor; ++ valor;} ruptura; caso 3: i = m - 1 +x; j = m - 1 +x; for (int k = 0; k <x; ++ k) {a [i +k] [j] = valor; + +valor;} break (int k = 0; k <x; ++ k) {a [i +k] [j] = value; ++ value;} break; caso 3: i = m - 1 +x; j = m - 1 +x; for (int k = 0; k <x; ++ k) {a [i] [j - k] = valor; ++ valor;} break; case 4: i = m - 1 +x; j = m - 1 x; ++ k) {a [i - k] [j] = valor; ++ value;} break;}} // Generar la capa privada de la capa m -th (int m) // m representa la capa MTH {int x = n - 1 - (m - 1) * 2; // x representa el número de números en cada borde de la capa mth int o Getcorer (m); int o1; + x; int o3 = o2 + x; int o4 = o3 + x; // system.out.println (o4); lado (1, o, x, m); lado (2, o, x, m); lado (3, o, x, m); lado (4, o, x, m);} // generar matrix de serpiente público void snakematrix () ¿Cuántas capas hay para (int i = 1; i <= m; ++ i) {shell (i);} if (n % 2 == 1 1) {a [n / 2] [n / 2] = n * n; (a [i] [j] <10) {System.out.print (a [i] [j] + "");} else {System.out.print (a [i] [j] + ");} system.out.println ();}} public static void main (string args []) {mysnakematrix my = new mysnakematrix (niewematrix (niewematrix (niew (niewMatrix (newematrix (newematrix (niew (niew (newematrix (newematrix (newematrix (niew (newematrix (newematrix (niew (niewNe Scanner (System.in) .NextInt ()); // Use el escáner para obtener la entrada de consola my.snakematrix (); my.print ();}}Resumir
Lo anterior es todo el contenido de este artículo sobre la programación de Java para implementar el código de instancia de la matriz espiral de impresión, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a este sitio:
Java Lengua Descripción Estructura de almacenamiento y ejemplo de código de matriz de adyacencia
Implementación de programación Java de la representación de la matriz de adyacencia Dense Graph Code Ejemplo
Programación Java para implementar el código completo de un algoritmo*
Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!