Menu
Coddy logo textTech

סיכום – מספרים ייחודיים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 40 מתוך 56.

challenge icon

אתגר

קל

צרו תוכנית שקוראת סדרה של מספרים שלמים ומשתמשת ב־std::set כדי לסנן כפילויות באופן אוטומטי, ואז מדפיסה את מספר המספרים הייחודיים. כך מודגם היתרון העיקרי של קבוצות — שמירה על אוספים של איברים ייחודיים ללא בדיקה ידנית של כפילויות.

הקלטים הבאים יסופקו:

  • מספר שלם n שמייצג כמה מספרים יוזנו
  • לאחר מכן n מספרים שלמים לעיבוד

על התוכנית שלכם:

  1. ליצור std::set<int> ריק
  2. לקרוא את מספר המספרים השלמים שיוזנו
  3. להשתמש בלולאה כדי לקרוא כל מספר שלם ולהוסיף אותו לקבוצה באמצעות השיטה .insert()
  4. לאחר עיבוד כל המספרים, להשתמש בשיטה .size() כדי לקבל את מספר המספרים הייחודיים
  5. להדפיס את התוצאה ולהציג כמה מספרים ייחודיים נמצאו

השתמשו בפורמט הפלט המדויק הבא:

Unique numbers: [count]

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

נסו בעצמכם

#include <iostream>
#include <set>
using namespace std;

int main() {
    // קראו את מספר המספרים השלמים
    int n;
    cin >> n;
    
    // צרו קבוצה ריקה לאחסון מספרים שלמים ייחודיים
    set<int> uniqueNumbers;
    
    // TODO: כתבו את הקוד שלכם כאן
    // השתמשו בלולאה כדי לקרוא n מספרים שלמים ולהכניס אותם לקבוצה
    
    // הציגו את התוצאה
    cout << "Unique numbers: " << uniqueNumbers.size() << endl;
    
    return 0;
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C++ אונליין