Imprima el cubo de Rubik
Ingrese un número natural n (2≤n≤9), y requiera que se emita la siguiente matriz de cubos, es decir, la longitud lateral es n*n, los elementos se toman de 1 a n*n, y 1 está en la esquina superior izquierda, y cada elemento se coloca en sentido horario. Cuando n = 3:
1 2 3 8 9 4 7 6 5
[Formulario de entrada] Lea un entero N de la entrada estándar.
[Formulario de salida] Imprima el resultado a la salida estándar. La matriz cuadrada que cumple con los requisitos se emite, cada número ocupa 5 caracteres en ancho, está alineada a la derecha y se emite un carácter de retorno de carro al final de cada línea.
【Muestra de entrada】 4
【Muestra de salida】
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
lograr:
paquete cn.dfeng; importar java.util.arrays; import java.util.scanner; Maze de clase pública {Dirección de enum {arriba, abajo, derecha, izquierda; } public int [] [] buidMaze (int n) {int [] [] maze = new int [n] [n]; para (int [] a: laberinto) {arrays.fill (a, 0); } int col = 0; int fila = 0; int contador = 1; Dirección d = dirección. while (true) {if (maze [fila] [col] == 0) {laberinto [fila] [col] = contador ++; Switch (d) {Caso derecho: if (col + 1 <n && maze [fila] [col + 1] == 0) {col ++; } else {d = direction.down; fila ++; } romper; Case hacia abajo: if (fila + 1 <n && maze [fila + 1] [col] == 0) {fila ++; } else {d = direction.left; col -; } romper; Caso izquierdo: if (col -1> = 0 && Maze [fila] [col -1] == 0) {col -; } else {d = direction.up; fila --; } romper; predeterminado: if (fila - 1> = 0 && maze [fila - 1] [col] == 0) {fila -; } else {d = direction.right; col ++; } romper; }} else {break; }} return Maze; } public void printMaze (int [] [] Maze) {for (int [] row: Maze) {for (int i: row) {system.out.printf ("%3d", i); } System.out.println (); }} / ** * @param args * / public static void main (string [] args) {Scanner sc = new Scanner (System.in); System.out.println ("Ingrese el tamaño del laberinto:"); int size = sc.nextInt (); Laberinto de laberinto = nuevo laberinto (); int [] [] m = maze.buidmaze (tamaño); laberinto.printmaze (m); }}Imprimir gráficos de diamantes
El efecto de la imagen de Diamond es probablemente así:
Veamos el código a continuación
paquete cn.dfeng; / *** Esta clase puede usar* para imprimir un gráfico de diamantes con ** @author dfeng**/ public class Cajón {/ *** Imprimir gráfico de diamantes* @param n diamante tamaño*/ public void printdiamond (int n) {system.out.println (); int i = 0; bandera booleana = verdadero; while (i> = 0) {if (i <n) {for (int j = 0; j <n - i; j ++) {system.out.print (""); } for (int j = n - i; j <= n + i; j + = 2) {System.out.print ("*"); } System.out.println (); } if (i == n) {flag = false; i--; } if (flag) {i ++; } else {i--; }}}}