Распечатать куб Рубика
Введите естественное число n (2≤n≤9) и требуют вывода следующей кубической матрицы, то есть длина боковой части составляет n*n, элементы принимаются от 1 до N*n и 1 находится в верхнем левом углу, и каждый элемент помещается в направлении по часовой стрелке. Когда n = 3:
1 2 3 8 9 4 7 6 5
[Входная форма] Прочитайте целое число n из стандартного ввода.
[Выходная форма] Распечатайте результат на стандартный выход. Квадратная матрица, соответствующая требованиям, является выводом, каждый номер занимает 5 символов в ширине, выровнена вправо, а символ возврата перевозки выводится в конце каждой строки.
【Входной образец】 4
【Вывод Выводный образец】
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 7
выполнить:
Пакет Cn.dfeng; импортировать java.util.arrays; импортировать java.util.scanner; открытый класс лабиринт {enum направление {вверх, вниз, вправо, влево; } public int [] [] buidmaze (int n) {int [] [] maze = new int [n] [n]; for (int [] a: maze) {arrays.fill (a, 0); } int col = 0; int row = 0; int счетчик = 1; Направление D = направление. Право; while (true) {if (maze [row] [col] == 0) {maze [row] [col] = counter ++; Switch (d) {case right: if (col + 1 <n && maze [row] [col + 1] == 0) {col ++; } else {d = направление.down; row ++; } перерыв; Case Down: if (row + 1 <n && maze [row + 1] [col] == 0) {row ++; } else {d = direction.left; col -; } перерыв; Дело осталось: if (col -1> = 0 && maze [row] [col -1] == 0) {col -; } else {d = направление. ряд --; } перерыв; по умолчанию: if (row - 1> = 0 && maze [row - 1] [col] == 0) {row -; } else {d = направление. col ++; } перерыв; }} 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 («Пожалуйста, введите размер лабиринта:»); int size = sc.nextint (); Maze Maze = новый лабиринт (); int [] [] m = maze.buidmaze (размер); Maze.printmaze (M); }}Печать алмазной графики
Эффект изображения алмаза, вероятно, похож на это:
Давайте посмотрим на код ниже
Пакет Cn.dfeng; / *** Этот класс может использовать* для печати алмазной графики с ** @author dfeng**/ public Class Chower {/ *** Print Diamond Graphic* @param n Diamond Size*/ public void printdiamond (int n) {System.out.println (); int i = 0; логический флаг = true; 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; я--; } if (flag) {i ++; } else {i--; }}}}