Try HWzone in English English
עבור לתוכן
  • צור חשבון
  • מי אנחנו?

    שלום אורח/ת!

     
    שים לב - על מנת להשתתף בקהילה שלנו, להגיב ולפתוח דיונים חדשים, עליך להצטרף כחבר רשום.

    החברים שלנו נהנים מיתרונות רבים, כולל היכולת להשתתף בדיונים, להנות מהגרלות ומבצעים לחברי האתר, ולקבל מידי שבוע את התכנים הבולטים שלנו ישירות במייל.

    לא אוהבים שמציקים לכם במייל? ניתן להירשם לאתר אך לוותר על הרישום לעידכוני המייל השבועיים.

khbur

מתודה רקורסיבית של Hash code

Recommended Posts

איך כותבים בצורה יעילה מתודה רקורסיבית המקבלת מחרוזת ומחזירה מספר המייצג את ה-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;

 

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

אתה צריך לעשות את זה רקורסיבית, אז תחשוב רקורסיה.

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

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

 

אני ממליץ לך להתחיל מחדש, קודם כל לחשוב איך אתה הולך לבצע את המשימה לפני שאתה בכלל ניגש לרשום קוד (רמז: הargument של הפעולה שלך הוא המחרוזת, אז בכל שליחה תוריד תו מהמחרוזת הזו ).

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

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

התחבר או הרשם על מנת להגיב.

עליך להיות משתמש רשום על מנת להגיב

צור חשבון

צור חשבון חדש בקהילה בקלי קלות

רישום חשבון חדש

התחבר

משתמש קיים? התחבר

התחבר עכשיו