שאלה ב-C# - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה ב-C#


baruch_555

Recommended Posts

שלום...יש לי שאלה שאני לא יכול לפתור אותה...:

ריבוע קסם הוא ריבוע המכיל מספרים טבעיים שבו סכום כל שורה, סכום כל העמודה וסכום כל אלכסון שווים.

כתוב פעולה המקבלת ערכים של מערך דו מימדי ומחזירה TRUE אם המערך מהווה ריבוע קסם או FALSE אחרת.

דוגמא לריבוע קסם שבו סכום כל שורה, כל עמודה וכל אלכסון שווה 15: 2,9,4

7,5,3

6,1,8

קישור לתוכן
שתף באתרים אחרים

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

קישור לתוכן
שתף באתרים אחרים

הנה הצלחתי לפתור זה הקוד:

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();

}
}
}











קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...