اطبع مكعب روبيك
أدخل الرقم الطبيعي N (2≤N≤9) ، ويتطلب إخراج مصفوفة المكعب التالية ، أي أن طول الجانب هو n*n ، يتم أخذ العناصر من 1 إلى n*n ، و 1 في الزاوية اليسرى العليا ، ويتم وضع كل عنصر في اتجاه عقارب الساعة. عندما ن = 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 ؛ Maze Class العام {enum Direction {Up ، Down ، right ، Left ؛ } public int [] [] buidmaze (int n) {int [] [] maze = new int [n] [n] ؛ لـ (int [] a: maze) {arrays.fill (a ، 0) ؛ } int col = 0 ؛ int row = 0 ؛ العداد int = 1 ؛ الاتجاه d = الاتجاه. بينما (صحيح) {if (maze [row] [col] == 0) {maze [row] [col] = counter ++ ؛ Switch (d) {case right: if (col + 1 <n && maze [row] [col + 1] == 0) {col ++ ؛ } آخر {d = direction.down ؛ صف ++ ؛ } استراحة؛ Case Down: if (row + 1 <n && maze [row + 1] [col] == 0) {row ++ ؛ } آخر {d = Direction.left ؛ العقيد -؛ } استراحة؛ حالة اليسار: if (col -1> = 0 && maze [row] [col -1] == 0) {col -؛ } آخر {d = direction.up ؛ صف --؛ } استراحة؛ الافتراضي: if (row - 1> = 0 && maze [row - 1] [col] == 0) {row - ؛ } آخر {d = Direction.Right ؛ العقيد ++ ؛ } استراحة؛ }} آخر {break ؛ }} إرجاع متاهة ؛ } public printmaze (int [] [] [] maze) {for (int [] الصف: 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 = New Maze () ؛ int [] [] m = maze.buidmaze (size) ؛ Maze.Printmaze (M) ؛ }}طباعة رسومات الماس
ربما يكون تأثير صورة الماس مثل هذا:
دعونا نلقي نظرة على الكود أدناه
حزمة CN.DFENG ؛ / *** يمكن أن تستخدم هذه الفئة* لطباعة الرسوم الماس مع ** Author dfeng**/ درج الفئة العامة {/ *** طباعة Diamond Graphic* param n size diamond*/ public void printdiamond (int n) {system.out.println () ؛ int i = 0 ؛ العلم المنطقي = صحيح ؛ بينما (i> = 0) {if (i <n) {for (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 () ؛ } if (i == n) {flag = false ؛ أنا--؛ } if (flag) {i ++ ؛ } آخر {i-- ؛ }}}}