פורסם 2007 בפברואר 1518 שנים שלום...יש לי שאלה שאני לא יכול לפתור אותה...:ריבוע קסם הוא ריבוע המכיל מספרים טבעיים שבו סכום כל שורה, סכום כל העמודה וסכום כל אלכסון שווים.כתוב פעולה המקבלת ערכים של מערך דו מימדי ומחזירה TRUE אם המערך מהווה ריבוע קסם או FALSE אחרת.דוגמא לריבוע קסם שבו סכום כל שורה, כל עמודה וכל אלכסון שווה 15: 2,9,4 7,5,3 6,1,8
פורסם 2007 בפברואר 1518 שנים מחבר אני יודע לולאות מקוננות אבל לא יודע איך לבדוק סכום כל שורה ועמודה ואלכסון שווה...
פורסם 2007 בפברואר 1518 שנים מחבר למצוא קודם סכום של שורה ואז לבדוק על כל השורות+עמודות+אלכסונים אם זה שווה??
פורסם 2007 בפברואר 1518 שנים לא בעיה. תתחיל בבדיקת שורה אחת ותשתמש ב WHILE. כל עוד הסכום של השורה\עמודה\אלכסון הקודם שווה לסכום שחושב עכשיו, אז אתה ממשיך. ואז יש אי שוויון באמצע תשתמש באיזה דגל שיודיע שהמטריצה היא לא מטריצת קסם. אם אתה רוצה אני אכתוב לך משהו לדוג'
פורסם 2007 בפברואר 1618 שנים מחבר הנה הצלחתי לפתור זה הקוד:using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication47{ class Program { static bool CheckSum(int[,]m) { int sum = 0, sum2 = 0,sum3=0,sum4=0,sum5=0; for (int l = 0; l < 1;l++ ) for (int c = 0; c < m.GetLength(1); c++) sum = sum + m[l, c]; for (int l = 0; l < m.GetLength(0); l++) { for (int c = 0; c < m.GetLength(1); c++) { sum2 = sum2 + m[l, c]; sum3 = sum3 + m[c, l]; sum4 = sum4 + m[c, c]; sum5 = sum5 + m[c, m.GetLength(1)-c-1]; } if ((sum != sum2) || (sum != sum3) || (sum != sum4) || (sum != sum5)) return false; sum2 = 0; sum3 = 0; sum4 = 0; sum5 = 0; } return true; } public static void Main(string[] args) { int[,] m = { { 2, 9, 4 }, { 7, 5, 3 }, { 6, 1, 8 } }; Console.WriteLine(CheckSum(m)); Console.Read(); } }}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.