המשימה
מספר נקרא **שמח** אם כאשר מחליפים אותו שוב ושוב בסכום ריבועי ספרותיו,
מגיעים בסופו של דבר ל-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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.