khbur פורסם 2018 בדצמבר 30 Share פורסם 2018 בדצמבר 30 איך כותבים בצורה יעילה מתודה רקורסיבית המקבלת מחרוזת ומחזירה מספר המייצג את ה-hashCode: מספר ה-hashCode יתקבל מסכום של כל מספרי ה- ASCII של המחרוזת, לאחר שכול תו מייצג מספר ASCII מסוים. לדוגמה המחרוזת " RED" עם המתודה תחזיר את המספר: R)82+(e)101+(d)100 = 219) תודה זה הקוד שכתבתי שלא עובד /: public int hashCode(String value) { final int prime = 31; int result = 1; result = prime * result + x; result = prime * result + y; if(s.length() == 0){ exit(0); } for(int i = 0; i < s.size(); i++) { sum += s[i]; } return sum; קישור לתוכן שתף באתרים אחרים More sharing options...
BenderTheOffender פורסם 2018 בדצמבר 30 Share פורסם 2018 בדצמבר 30 אתה צריך לעשות את זה רקורסיבית, אז תחשוב רקורסיה. בבעיות רקורסיה מהסוג הזה הפעולה כל הזמן צריכה לקרוא לעצמה עד שהיא מגיעה לתנאי עצירה, בכל שלב היא משנה את הargument המתקבל ואת הגרסה המעודכנת שולחת לעצמה מחדש. איפה בקוד שלך החלק שקורה לפעולה מתוך הפעולה? אני ממליץ לך להתחיל מחדש, קודם כל לחשוב איך אתה הולך לבצע את המשימה לפני שאתה בכלל ניגש לרשום קוד (רמז: הargument של הפעולה שלך הוא המחרוזת, אז בכל שליחה תוריד תו מהמחרוזת הזו ). אחרי שכבר תכתוב ותצליח, תחזור להסתכל על הקוד שרשמת פה וללמוד מטעויות קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.