מתודה רקורסיבית של Hash code - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


khbur

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 של הפעולה שלך הוא המחרוזת, אז בכל שליחה תוריד תו מהמחרוזת הזו ).

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...