עבור לתוכן

בעיה ברקורסיה בJAVA

Featured Replies

פורסם

שלום

לפני שבועיים התחלתי ללמוד ריקורסיה ואני מתקשה בזה כמו דג שמנסה לשחק כדורגל...

עכשיו, אני צריך לבנות מתודה רקורסיבית שתקבל מספר n ותכתוב את n המספרים הראשונים בסדרה שבה כל מספר שווה לערך המספר הקודם ועוד המיקום שלו.

יעני:

 1,2,4,7,11...n

או נוסחה בצורה של מערך:

arr[i]=arr[i-1]+(i-1)

ניסיתי לפתור את זה ככה שישנו משתנה בתוך המתודה שכולל את המיקום וגדל כל פעם ב1, הבעיה היא רק שאני לא מבין איך אני אעשה שהערך שלו יישמר בכל שלב של הריקורסיה.

תודה לכל העוזרים :xyxthumbs:

פורסם

אני אכתוב בפסואודו-קוד כי אני לא רוצה להכנס לשגיאות סינטקס בגאווה (סיימתי עכשיו פרוייקט בפרולוג ככה שאני בטח יתבלבל עם הסינטקס):

פונקציה המקבלת את הערך N

{ אם N שונה מ-0 אז

{ קרא לפונקציה עם הערך N-1

הדפס

arr[i]=arr[i-1]+(i-1)

}

}

פורסם
  • מחבר

מה שעשיתי עם מערך היה רק דוגמה, זה לא באמת מה שצריך לכתוב :silly:

חשבתי על להשתמש במה שאמרת, הבעיה היא רק שאז זה מדפיס בסדר הפוך

פורסם

אז פשוט תהפוך את הסדר בין ה-"הדפס" ל- "קרא לפונקציה".

ז"א קודם הדפס אח"כ קרא לפונקציה עם N-1.

פורסם
  • מחבר

זה עדיין לא יעבוד, כי אני צריך לא רק את המקום בסדרה אלא גם את המספר שנמצא במקום הזה

פורסם

נו אז בעזרת N תוציא את הערך מהמערך.

אם המערך לא נשלח לפונקציה אז או שתשלח אותו

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים