נתון מערך חד-ממדי a מלא במספרים שלמים חיוביים, ומספר שלם חיובי num. יש להחזיר true אם קיימת תת-קבוצה של איברי המערך, שסכום האיברים שלה שווה ל-num, תוך שמירה על התנאים הבאים:
i, גם את האיבר באינדקס i+1 וגם את האיבר באינדקס i+2, לכל i.אם אין תת-קבוצה במערך שעומדת בתנאים אלו, יוחזר הערך false.
השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.
a = [5, 4, 2, 1, 3], num = 5
true
הסבר: ניתן להגיע לסכום 5 על ידי תת-קבוצה ריקה.
a = [5, 4, 2, 1, 3], num = 3
true
הסבר: ניתן להגיע לסכום 3 על ידי המספרים 1 + 2.
a = [5, 4, 2, 1, 3], num = 9
true
הסבר: ניתן להגיע לסכום 9 על ידי המספרים 5 + 4.
a = [5, 4, 2, 1, 3], num = 2
true
הסבר: ניתן להגיע לסכום 2 על ידי המספר 2.
a = [5, 4, 2, 1, 3], num = 11
false
הסבר: אין תת-קבוצה שמגיעה לסכום 11 מבלי לכלול שלושה איברים רצופים.
a = [5, 4, 2, 1, 3], num = 17
false
הסבר: אין תת-קבוצה שמגיעה לסכום 17.
a = [1, 2, 3, 4, 5], num = 6
true
הסבר: ניתן להגיע לסכום 6 על ידי המספרים 1 + 5.
a = [1, 2, 3, 4, 5], num = 10
true
הסבר: ניתן להגיע לסכום 10 על ידי המספרים 2 + 3 + 5.
קלט:
a = [5, 4, 2, 1, 3], num = 5
הפלט המבוקש:
true