sking משתמש מתחיל
הצטרף / הצטרפה: 07 July 2010 מדינה: Israel
משתמש: מנותק/ת הודעות: 3
|
נשלח בתאריך: 07 July 2010 בשעה 13:18 | | IP רשוּם
|
|
|
|
זה נראה כמו שיעורי בית, בדר"כ עדיף שתמיד תכתוב מה עשית ואיפה נתקעת. אבל בכל זאת מעודף זמן פתרתי לך הכל:
פתרון ל1 ו2
קוד:
static class Tables { static public void test() { var t = getT(4); Console.WriteLine(printT(t)); Console.WriteLine(nSecondDiagonal(t, 0)); Console.WriteLine(sum(t)); } static int nSecondDiagonal(int[,] t,int z) //Targil 2 { int n = t.GetLength(0); int sum = 0; for (int i = 0; i < n-z; i++) { sum+=(t[n-i-1,i+z]); } return sum; } static string printT(int[,] t) { string str = ""; for (int r = 0; r < t.GetLength(0); r++) { for (int c = 0; c < t.GetLength(1); c++) str += t[r, c]+"\t"; str += "\n"; } return str; } static int[,] getT(int n) { int[,]T = new int[n,n]; int i = 1; for (int r = 0; r < n; r++) for (int c = 0; c < n; c++) T[r, c] = i++; return T; } static object sum(int[,] T) //Targil 1 { int b = 0, d=0; int N = T.GetLength(0); for (int i = 0; i < N; i++) { b += T[0, i] + T[i,0] + T[i,N-1] + T[N-1,i]; d += T[i,i]; } b -= T[0, 0] + T[0, N-1] + T[N-1, 0] + T[N-1,N-1];//you can do it with two loops (0~N,1~N-1) and then you don't need subtract the corners return new { border = b, diagonal = d}; } }
|
|
|
ב3 זה פשוט MOD ו DIV (מימין לשמאל) עמודה = כיתה1 / עמודות + 1 שורה = כיתה1 % שורה + 1
ב4 בצורה רקורסיבית אתה יורד:
קוד:
static bool sameWay(BT t,char key='r') // 'r' = root - the first one, you can overload the method instead { if (t.v != key&&key!='r') return false; if (t.left==null&&t.right==null) return true; return (t.left!=null&&sameWay(t.left,t.v)) || (t.right!=null&&sameWay(t.right, t.v)); }
|
|
|
~אין אני לוקח כל אחריות על הקוד ויש לבדוק אותו קודם~
|