נתונה הפעולה what המקבלת מערך של מספרים שלמים חיוביים arr ופרמטר נוסף exp. הפרמטר exp יכול לקבל ערכים שהם חזקות של 10 (כגון 1, 10, 100, 1000...).

public static int[] what(int[] arr, int exp) {
    int n = arr.length;
    int[] output = new int[n];
    int[] count = new int[10];
    for (int i = 0; i < n; i++) {
        int digit = (arr[i] / exp) % 10;
        count[digit]++;
    }
    // ***** סיום שלב 1 *****
    for (int i = 1; i < 10; i++) {
        count[i] += count[i - 1];
    }
    // ***** סיום שלב 2 *****
    for (int i = n - 1; i >= 0; i--) {
        int digit = (arr[i] / exp) % 10;
        output[count[digit] - 1] = arr[i];
        count[digit]--;
    }
    // ***** סיום שלב 3 *****
    return output;
}
(א)נתון מערך `int[] arr = {23, 15, 9, 71, 25}`
עקבו אחרי זימון הפעולה `int[] out1 = what(arr, 1)` ורשמו מה יהיה תוכן המערך out1 אחרי זימון הפעולה.
יש להראות את תוכן המערך count אחרי סיום של כל אחד מהשלבים 1–3.
(ב)נתון מערך `int[] arr = {23, 15, 9, 71, 25}`
עקבו אחרי זימון הפעולה `int[] out2 = what(arr, 10)` ורשמו מה יהיה תוכן המערך out2 אחרי זימון הפעולה.
(ג)מה מבצעת הפעולה what באופן כללי?

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה בטיחות מוסמך עונה כאן — תקבלו מענה מקצועי

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←