פתרון החידה האחרונה (כותרת ההודעה: חידת תכנות)

עמוד

ברוכים הבאים לאתר תחרויות קודגורו! פורומים פתרון החידה האחרונה (כותרת ההודעה: חידת תכנות)

מוצגות 1 תגובות (מתוך 1 סה״כ)
  • מאת
    תגובות
  • #77149
    no1
    משתתף

    פתרון החידה האחרונה (כותרת ההודעה: חידת תכנות)

    התוכנית מבצעת השוואה בין בתים שנמצאים במערך של 256 בתים.
    ערך הבתים הוא רנדומלי.

    תיאור הלולאה הראשונה:
    ערך הבית האחרון מושווה לערך שנמצא בבית שאליו מצביע הערך שבבית האחרון.
    אם הערך שבבית האחרון קטן יותר הלולאה לא ממשיכה, אחרת:
    שני הערכים הופכים למצביעים (אחד מהם הופך למצביע כפול – j), הערכים שנמצאים בתוך המצביעים מוזנים למשתנים j, k.
    לולאה זו מסתיימת כאשר הערך שנמצא ב f[j] גדול יותר מ f[k].

    תיאור הלולאה השניה:
    הערך שאליו j מצביע במערך הבתים מוזן ל j.
    k מאותחל ל 256.
    תנאי הלולאה זהה כמו בלולאה הקודמת.
    בניגוד ללולאה הקודמת j הפעם לא מצביע כפול אלא רק פעם אחת, בכל ריצה של הלולאה j שווה לערך שאליו הוא מצביע במערך הבתים.

    הפתרון הוא בהנחה שהמהדר אינו מוסיף קוד שמאפס את ערכי המשתנים ובהנחה שמערכת ההפעלה לא מאפסת את הבתים בטווח הזכרון שמוקצה לתוכנית.
    אחרת שתי הלולאות לא ירוצו יותר מפעם אחת.

מוצגות 1 תגובות (מתוך 1 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.