סכום חלוקת ספרות

בהינתן מערך חד-ממדי arr המכיל ספרות בין 1 ל- 9 (כולל) ומספר שלם חיובי num.

יש להחזיר true אם יש דרך לחבר את כל איברי המערך, כשהם משורשרים למספרים בני ספרה אחת או יותר, כך שסכומם הינו num. אם אין דרך כזו יוחזר false. כל איבר במערך חייב להשתתף בסכום, ופעם אחת בלבד!

אם יש דרך כזו יש להדפיס את החלוקה של הספרות למספרים כך שסכומם הינו הפרמטר num.

השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.

אילוצים:
  • המערך אינו null ויש בו לפחות תא אחד. כל התאים מכילים ספרות והספרה 0 אינה מופיעה בו.
  • num שלם חיובי
  • יש להדפיס את הפתרון במקרה והוא קיים.

 

דוגמה 1:
קלט:
arr = [7, 3, 1], num = 38
פלט:
7 31
true

הסבר: כיוון ש- 7 + 31 = 38

דוגמה 2:
קלט:
arr = [1, 2, 3, 4, 5], num = 168
פלט:
123 45
true

הסבר: כיוון ש- 123 + 45 = 168

דוגמה 3:
קלט:
arr = [6, 7], num = 67
פלט:
67
true

הסבר: כיוון ש- 67 = 67

דוגמה 4:
קלט:
arr = [8], num = 8
פלט:
8
true

הסבר: כיוון ש- 8 = 8

דוגמה 5:
קלט:
arr = [1, 1, 1], num = 3
פלט:
1 1 1
true

הסבר: כיוון ש- 1 + 1 + 1 = 3

דוגמה 6:
קלט:
arr = [6, 6, 4, 4, 4, 1], num = 115
פלט:
66 44 4 1
true

הסבר: יש כמה פתרונות אפשריים, למשל 66 + 44 + 4 + 1 = 115

דוגמה 7:
קלט:
arr = [1, 2], num = 4
פלט:
false

הסבר: אין שום דרך להגיע לתוצאה 4 עם הספרות 1 2

דוגמה 8:
קלט:
arr = [9, 9, 9, 9, 9], num = 99999
פלט:
99999
true

הסבר: 99999 = 99999, כל המערך כקבוצה אחת.

Loading...
נשמרLn 1, Col 1

קלט:

arr = [7, 3, 1], num = 38

הפלט המבוקש:

7 31
true