18-01-2011, 21:35
|
|
|
|
חבר מתאריך: 30.08.09
הודעות: 2,880
|
|
a[n-n]==b[m-m] || a[n-n]==b[m-m]-1
- מה אומר n-n או m-m? זה יביא תמיד 0, אני מניח שהתכוונת לרשום n-1 ו-m-1.
- בחלק השני של התנאי, את צריכה לבדוק ש- a[n-n]==b[m-m]+1 מכיוון שיש להוסיף 1 לאיבר הקטן כדי שיתקיים שוויון (או להחסיר 1 מהאיבר הגדול).
return crypt_subarr(a+1, b+1, n-1, m-1);q
return crypt_subarr(a+1, b, n-1, m);q
- אני לא יודע איך זה בשפת C, אבל בכל שפות התכנות שאני מכיר שתי השורות הללו יביאו לשגיאת קומפילציה. אי אפשר לעשות פעולה חשבונית a+1 כאשר a הוא מערך... גם אין בזה ממש הגיון
עוד משהו, התנאי שלך בהתחלה עובד ללא תלות בכך ש-יש/אין התאמה, ז"א... את חייבת לבדוק:
- אם האינדקס למערך הקטן הגיע לסוף וגם יש התאמה בין התאים, אז אפשר להחזיר 1.
- אם האינדקס למערך הגדול הגיע לסוף וגם אין התאמה, אז אפשר להחזיר 0.
(אפשר אפילו לשפר טיפה את הקוד ולהוסיף את התנאי "אם n<m אז החזר 0").
_____________________________________
ציטוט:
במקור נכתב על ידי Michael Shermer
Smart people are very good at rationalizing things they came to believe for non-smart reasons.
|
|