พิมพ์ลูกบาศก์ของ Rubik
ป้อนหมายเลขธรรมชาติ 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
ทำให้สำเร็จ:
แพ็คเกจ Cn.Dfeng; นำเข้า Java.util.Arrays; นำเข้า java.util.scanner; เขาวงกตระดับสาธารณะ {ทิศทาง enum {ขึ้น, ลง, ขวา, ซ้าย; } public int [] [] buidmaze (int n) {int [] [] เขาวงกต = new int [n] [n]; สำหรับ (int [] a: เขาวงกต) {array.fill (a, 0); } int col = 0; แถว int = 0; int counter = 1; ทิศทาง d = direction.right; ในขณะที่ (จริง) {ถ้า (เขาวงกต [แถว] [col] == 0) {เขาวงกต [แถว] [col] = counter ++; สวิตช์ (d) {กรณีขวา: ถ้า (col + 1 <n && เขาวงกต [แถว] [col + 1] == 0) {col ++; } else {d = direction.down; แถว ++; } หยุดพัก; กรณีลง: ถ้า (แถว + 1 <n && เขาวงกต [แถว + 1] [col] == 0) {แถว ++; } else {d = direction.left; Col -; } หยุดพัก; กรณีซ้าย: ถ้า (col -1> = 0 && เขาวงกต [แถว] [col -1] == 0) {col -; } else {d = direction.up; แถว --; } หยุดพัก; ค่าเริ่มต้น: ถ้า (แถว - 1> = 0 && เขาวงกต [แถว - 1] [col] == 0) {row -; } else {d = direction.right; Col ++; } หยุดพัก; }} else {break; }} ส่งคืนเขาวงกต; } public void printmaze (int [] [] เขาวงกต) {สำหรับ (int [] แถว: เขาวงกต) {สำหรับ (int i: row) {system.out.printf ("%3d", i); } system.out.println (); }} / ** * @param args * / โมฆะคงที่สาธารณะหลัก (String [] args) {Scanner sc = ใหม่สแกนเนอร์ (System.in); System.out.println ("โปรดป้อนขนาดของเขาวงกต:"); ขนาด int = sc.nextint (); เขาวงกตเขาวงกต = ใหม่เขาวงกต (); int [] [] m = Maze.buidmaze (ขนาด); Maze.printmaze (M); -พิมพ์กราฟิกเพชร
ผลของภาพเพชรอาจเป็นเช่นนี้:
มาดูรหัสด้านล่าง
แพ็คเกจ Cn.Dfeng; / *** คลาสนี้สามารถใช้* เพื่อพิมพ์กราฟิกเพชรด้วย ** @author dfeng**/ ลิ้นชักคลาสสาธารณะ {/ *** พิมพ์กราฟิกเพชร* @param n เพชรขนาด*/ โมฆะสาธารณะ printdiamond (int n) {system.out.println (); int i = 0; ธงบูลีน = จริง; ในขณะที่ (i> = 0) {ถ้า (i <n) {สำหรับ (int j = 0; j <n - i; j ++) {system.out.print (""); } สำหรับ (int j = n - i; j <= n + i; j + = 2) {system.out.print ("*"); } system.out.println (); } ถ้า (i == n) {flag = false; ฉัน--; } ถ้า (ธง) {i ++; } else {i--; -