תרגול מדעי המחשב

מספר שמח

בינוני Java

המשימה

מספר נקרא **שמח** אם כאשר מחליפים אותו שוב ושוב בסכום ריבועי ספרותיו,
מגיעים בסופו של דבר ל-1.

דוגמה עבור 19:
  19  →  1² + 9²  = 82
  82  →  8² + 2²  = 68
  68  →  6² + 8²  = 100
  100 →  1² + 0² + 0² = 1   ✓ שמח

מספר שאינו שמח נכנס למחזור אינסופי שעובר תמיד דרך 4.

כתוב **שתי** פעולות:
1. פעולה שמקבלת מספר ומחזירה את סכום ריבועי ספרותיו.
2. פעולה שמקבלת מספר ומחזירה true אם הוא שמח, בעזרת הפעולה הראשונה.

הנחיות:
• תנאי עצירה: הגענו ל-1 (שמח) או הגענו ל-4 (לא שמח).
• זו הנקודה של התרגיל — הפירוק לשתי פעולות. פתרון בפעולה אחת ארוכה
  אינו עונה על המשימה.

```ds:table
{"title":"המסלול של 19","rows":[["שלב","מספר","סכום ריבועי הספרות"],["1","19","82"],["2","82","68"],["3","68","100"],["4","100","1"]]}
```

קוד הפתיחה

public class Main {

    public static int squareDigitSum(int n) {
        // פעולת עזר — סכום ריבועי הספרות
        return 0;
    }

    public static boolean isHappy(int n) {
        // כתוב את הפתרון כאן — השתמש בפעולת העזר
        return false;
    }

    public static void main(String[] args) {
        System.out.println(squareDigitSum(19));   // 82
        System.out.println(isHappy(19));          // true
        System.out.println(isHappy(7));           // true
        System.out.println(isHappy(1));           // true
        System.out.println(isHappy(4));           // false
        System.out.println(isHappy(2));           // false
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

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