אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 2023 · קיץ מועד ב · שאלה 12כל שאלות המבחן ←
אלגוריתמים בסיסייםרקורסיה

נתונות הפעולות הרקורסיביות what ו-secret הבאות:

```java
public static int what(int num)
{
    return what(num,1);
}
private static int what(int num, int c)
{
    int a;
    if(num < 10) return c;
    if(num%10 ==num/10%10)
        a = what(num/10, c+1);
    else
        a = what(num/10, 1);
    return Math.max(a, c);
}

public static int secret(int[] arr)
{
    return secret(arr, 0, arr.length-1);
}
private static int secret(int[] arr, int left, int right)
{
    if(left == right) return arr[left];
    if(what(arr[left]) < what(arr[right]))
        return secret(arr, left +1, right);
    return secret(arr, left, right -1);
}
סעיף א

עקבו אחרי זימון what(5777922) ורשמו את תוצאת הזימון. יש להראות מעקב!

סעיף ב

מה מבצעת הפעולה what(num) עבור מספר שלם חיובי num?

סעיף ג

עקבו אחרי זימון secret(arr) עבור המערך:

int[] arr = {777922, 111, 623, 221333, 10000, 22133, 211, 1001, 99790};

ורשמו את תוצאת הזימון. יש להראות מעקב אחרי הפעולה secret, אין צורך במעקב אחרי הפעולה what.

סעיף ד

האם קיים מערך של מספרים שלמים חיוביים arr בגודל חמישה תאים לפחות, שעבורו זימון הפעולה secret(arr) יחזיר 123? הסבירו את תשובתכם.

סעיף ה

מה מבצעת הפעולה secret(arr) עבור מערך מספרים שלמים וחיוביים arr?

שאלות ותגובות על השאלה

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

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

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