תרגיל תכנות עבור ריבועי קסם מוזרים ב- Java

לא ברור מי עלה לראשונה עם ריבוע קסם. יש סיפור על שיטפון ענק בסין לפני זמן רב. האנשים חששו שיישטפו וניסו לפייס את אל הנהר על ידי הקרבת קרבנות. לא נראה היה ששום דבר עבד עד שילד הבחין בצב המגלם ריבוע קסם בגבו שהמשיך להקיף את ההקרבה. הכיכר אמרה לאנשים כמה גדול היה צריך להקריב את קורבנם כדי להציל את עצמם. מאז היו ריבועי הקסם שיא האופנה של כל צב בוחן.

במקרה שמעולם לא נתקלת בכזו, ריבוע קסם הוא סידור של מספרים רציפים בריבוע כך שהשורות, העמודות והאלכסונים כולם מסתכמים לאותו מספר. לדוגמא, ריבוע קסם 3x3 הוא:

תרגיל תכנות זה עוסק ביצירת ריבועי קסם בגודל משונה (כלומר, גודל הריבוע יכול להיות רק מספר אי זוגי, 3x3, 5x5, 7x7, 9x9 וכן הלאה). הטריק ביצירת ריבוע כזה הוא להציב את המספר 1 בשורה הראשונה ובעמודה האמצעית. כדי למצוא היכן למקם את המספר הבא, התקדמו באלכסון כלפי מעלה ימינה (כלומר שורה אחת למעלה, עמודה אחת לרוחב). אם מהלך כזה אומר שאתה נופל מהכיכר, התעטף אל השורה או העמודה בצד הנגדי. לבסוף, אם המהלך לוקח אותך לכיכר שכבר מלאה, חזור לכיכר המקורית והזז מטה בזה אחר זה. חזור על התהליך עד למילוי כל המשבצות.

כעת התנועה האלכסונית כלפי מעלה מביאה לריבוע שכבר מלא, אז אנו חוזרים למקום שאליו הגענו ונופלים שורה שורה:

instagram viewer

instagram story viewer