המשימה
נתונה שרשרת ממוינת של NumCount (מספר וכמות המופעים שלו), כמו בתרגיל
הקודם.
"הערך המופיע במקום ה-n" הוא הערך שיושב במקום ה-n אילו היינו פורשים את
השרשרת לרשימת ערכים מלאה, לפי הסדר, כשכל ערך חוזר count פעמים.
לדוגמה, עבור השרשרת 3(4) → 5(1) → 8(3) → 10(1), הרשימה הפרושה היא:
3, 3, 3, 3, 5, 8, 8, 8, 10
1 2 3 4 5 6 7 8 9
ולכן עבור n = 7 התשובה היא 8.
כתוב פעולה valueN שמקבלת את ראש השרשרת ואת n, ומחזירה את הערך במקום ה-n.
הנחיות:
• הספירה מתחילה מ-1.
• אפשר להניח שהערך במקום ה-n קיים בשרשרת.
• אל תבנו רשימה פרושה בזיכרון — צברו את הכמויות תוך כדי מעבר.
```ds:table
{"title":"השרשרת","rows":[["num","count"],["3","4"],["5","1"],["8","3"],["10","1"]]}
```
```ds:array
{"title":"הרשימה הפרושה — האינדקס מתחת, אבל הספירה כאן מתחילה מ-1","items":["3","3","3","3","5","8","8","8","10"]}
```
קוד הפתיחה
using System;
class NumCount {
private int num;
private int count;
public NumCount(int num, int count) { this.num = num; this.count = count; }
public int GetNum() { return num; }
public int GetCount() { return count; }
public override string ToString() { return num + " " + count; }
}
class Program {
/** מחזירה את הערך המופיע במקום ה-n (הספירה מתחילה מ-1). */
static int ValueN(Node<NumCount> lst, int n) {
// כתוב את הפתרון כאן
return 0;
}
// ── עזר, לא חלק מהמשימה ──────────────────────────────────────────
static Node<NumCount> Build() {
return new Node<NumCount>(new NumCount(3, 4),
new Node<NumCount>(new NumCount(5, 1),
new Node<NumCount>(new NumCount(8, 3),
new Node<NumCount>(new NumCount(10, 1), null))));
}
static void Main() {
Node<NumCount> lst = Build(); // 3,3,3,3,5,8,8,8,10
Console.WriteLine(ValueN(lst, 1)); // 3
Console.WriteLine(ValueN(lst, 4)); // 3 (הגבול)
Console.WriteLine(ValueN(lst, 5)); // 5 (הגבול)
Console.WriteLine(ValueN(lst, 7)); // 8
Console.WriteLine(ValueN(lst, 9)); // 10
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.