Imprima o cubo de Rubik
Digite um número natural N (2≤n≤9) e exija que a seguinte matriz do cubo seja emitida, ou seja, o comprimento lateral é n*n, os elementos são retirados de 1 a n*n e 1 está no canto superior esquerdo e cada elemento é colocado no sentido horário. Quando n = 3:
1 2 3 8 9 4 7 6 5
[Formulário de entrada] Leia um número inteiro n a partir de entrada padrão.
[Formulário de saída] Imprima o resultado para a saída padrão. A matriz quadrada que atende aos requisitos é emitida, cada número ocupa 5 caracteres de largura, está alinhado à direita e um caractere de retorno de transporte é emitido no final de cada linha.
【Amostra de entrada】 4
【Amostra de saída】
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
concluir:
pacote cn.dfeng; importar java.util.arrays; importar java.util.scanner; public class Maze {Enum Direção {para cima, para baixo, direita, esquerda; } public int [] [] Buidmaze (int n) {int [] [] Maze = new int [n] [n]; para (int [] a: labirinto) {Arrays.fill (a, 0); } int col = 0; int linha = 0; int contador = 1; Direção d = direção.right; while (true) {if (labirinto [linha] [col] == 0) {Maze [linha] [col] = contador ++; switch (d) {case à direita: if (col + 1 <n && Maze [linha] [col + 1] == 0) {col ++; } else {d = direction.down; linha ++; } quebrar; CASO DO AVAÇÃO: if (linha + 1 <n && Maze [linha + 1] [col] == 0) {linha ++; } else {d = direction.left; col -; } quebrar; Case esquerdo: if (col -1> = 0 && Maze [linha] [col -1] == 0) {col -; } else {d = direction.up; linha --; } quebrar; padrão: if (linha - 1> = 0 && Maze [linha - 1] [col] == 0) {linha -; } else {d = direction.right; col ++; } quebrar; }} else {break; }} retorna labirinto; } public void printmaze (int [] [] labirinto) {for (int [] linha: labirinto) {for (int i: linha) {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 ("Por favor, insira o tamanho do labirinto:"); int size = sc.nextInt (); Maze Maze = new Maze (); int [] [] m = Maze.buidmaze (tamanho); Maze.printmaze (m); }}Imprimir gráficos de diamante
O efeito da imagem do diamante provavelmente é assim:
Vejamos o código abaixo
pacote cn.dfeng; / *** Esta classe pode usar* para imprimir o gráfico de diamantes com ** @author dfeng**/ public class gaveta {/ *** imprimir gráfico de diamante* @param n tamanho do diamante*/ public void printDiamond (int n) {System.out.println (); int i = 0; bandeira booleana = true; while (i> = 0) {if (i <n) {for (int j = 0; j <n - i; j ++) {System.out.print (""); } para (int j = n - i; j <= n + i; j + = 2) {System.out.print ("*"); } System.out.println (); } if (i == n) {flag = false; eu--; } if (flag) {i ++; } else {i--; }}}}