עשינו איזה שאלה בכיתה. אני אכתוב את השאלה, ואת הפתרון. עכשיו אני לא כזה מבין מה עשו בפיתרון.. למי שיש קצת זמן להסביר לי אני אודה לו מאוד.. תודה!
נתאר את בעיית מציאת "בור" במערך דו-ממדי ריבועי:קלט: מערך דו-ממדי ריבועי בגודל n´n המלא באפסים ואחדים בלבד.
נגדיר ש- k הוא בור (sink) אם בשורה ה- k - ית כל הערכים הם 0, ובעמודה ה- k -ית כל הערכים הם 1 (חוץ מהאיבר עצמו שהוא 0).
פלט: האם קיים מספר k המהווה בור במערך? אם כן, הדפס את ערכו.
לדוגמא: במערך A 3 הוא "בור".
010110
101100
000101
000000
101100
010111
כתבו שיטה יעילה הפותרת את הבעיה.
חתימת השיטה תהיה:
public static int isSink (int mat)
השיטה תחזיר את המספר k המהווה בור במערך, אם קיים אחד כזה, ו- -1 אם לא קיים בור במערך.
public class IsSink {
public static int isSink(int mat)
{
int n = mat.length;
boolean check = new boolean;
for ( int k = 0 ; k < n ; k++ )
check = true;
for ( int k = 0 ; k < n ; k++ )
if ( check )
{
for ( int j = 0 ; j < n ; j++ )
{
if ( k != j )
check = false;
else
{
check = false;
break;
}
if ( k == j )
continue;
if ( mat == 1 )
check = false;
else
{
check = false;
break;
}
}
if ( check )
return k;
}
return -1;
}
}