המשימה
נתונה שרשרת ממוינת של 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 קיים בשרשרת. • אל תבנו רשימה פרושה בזיכרון — צברו את הכמויות תוך כדי מעבר. [טבלה] [מערך]
קוד הפתיחה
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 String toString() { return num + " " + count; }
}
public class Main {
/** מחזירה את הערך המופיע במקום ה-n (הספירה מתחילה מ-1). */
public static int valueN(Node<NumCount> lst, int n) {
// כתוב את הפתרון כאן
return 0;
}
// ── עזר, לא חלק מהמשימה ──────────────────────────────────────────
public 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))));
}
public static void main(String[] args) {
Node<NumCount> lst = build(); // 3,3,3,3,5,8,8,8,10
System.out.println(valueN(lst, 1)); // 3
System.out.println(valueN(lst, 4)); // 3 (הגבול)
System.out.println(valueN(lst, 5)); // 5 (הגבול)
System.out.println(valueN(lst, 7)); // 8
System.out.println(valueN(lst, 9)); // 10
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.