אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — יסודות (שאלון 899371)מבחן 2026 · קיץ מועד א · שאלה 6כל שאלות המבחן ←
תכנות בסיסימחרוזות

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

חתך שלם חיובי num ומספר שלם חיובי k, הקטן מכמות הספרות של num.

מספר שלם חיובי נקרא "קפרקר מאוזן" כאשר מעלים אותו בריבוע, מפצלים את התוצאה באמצע לשני חלקים שווים באורכם (מספר הספרות בתוצאה זוגי, וכמות הספרות בכל חלק זהה), וסכום שני החלקים שווה למספר המקורי.

שתי דוגמאות: 9 (9²=81, חלק ימני 1, חלק שמאלי 8, 8+1=9) ו-4950 (4950²=24502500, חלק ימני 2500, חלק שמאלי 2450, 2450+2500=4950) הם "קפרקר מאוזן".

סעיף א

ממשו את הפעולה שלפניכם:

Java – public static int leftDigits (int num, int k) C# – public static int LeftDigits (int num, int k)

num הוא מספר חיובי, ו־k הוא מספר חיובי, הקטן מכמות הספרות של num (כלומר אורך המספר num). הפעולה תחזיר את המספר המיוצג על ידי k הספרות שמצד שמאל של המספר num. דוגמה: עבור k = 5 ו־num = 260043100, הפעולה תחזיר את המספר 26004.

סעיף ב

Java – public static int rightDigits (int num, int k) C# – public static int RightDigits (int num, int k)

num הוא מספר חיובי, ו־k הוא מספר חיובי, הקטן מכמות הספרות של num (כלומר אורך המספר num). הפעולה תחזיר את המספר המיוצג על ידי k הספרות שמצד ימין של המספר num (הניחו שהמספר המוחזר תקין ואינו מתחיל ב־0). דוגמה: עבור k = 5 ו־num = 260043100, הפעולה תחזיר את המספר 43100.

סעיף ג

מספר שלם חיובי נקרא "קפרקר מאוזן" כאשר הוא מקיים את התנאי שלהלן: מעלים את המספר בריבוע, את התוצאה מפצלים באמצע לשני חלקים שווים באורכם (כלומר מספר הספרות בתוצאה הוא זוגי, וכמות הספרות בכל חלק זהה), וסכום שני החלקים שווה למספר המקורי. שתי דוגמאות: המספרים 9 ו־4950 הם "קפרקר מאוזן". הסבר:

המספרהעלאה בריבועהחלק הימניהחלק השמאליסכום
99² = 81188 + 1 = 9
49504950² = 24502500250024502450 + 2500 = 4950

כתבו פעולה חיצונית ששמה isKaprekar בשפת Java או IsKaprekar בשפת C#, המקבלת מספר שלם חיובי – num. הפעולה תחזיר true אם num הוא מספר "קפרקר מאוזן", אחרת הפעולה תחזיר false. יש להשתמש בפעולות שכתבתם בסעיפים א–ב. הניחו שאם מעלים את num בריבוע, מספר הספרות בתוצאה הוא זוגי, ושני החלקים של התוצאה תקינים.

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

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

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

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