Menu
CoddyTech

Number of 1 Bits

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

פונקציה

hammingWeight(n: integer) → integer
ninteger
מספר שלם אי-שלילי שמתאים למספר שלם signed בן 32 סיביות
מחזירהinteger
מספר הספרות 1 בייצוג הבינארי של n

אילוצים

  • 0 ≤ n ≤ 231-1

דוגמאות

קלט
n = 11
פלט
3
הסבר
11 הוא 1011 בבינארי, שהם 8 + 2 + 1. שלוש מתוך ארבע הספרות הבינאריות שלו הן 1, ולכן התשובה היא 3.
challenge icon

שאלת המשך

אם הפונקציה הזאת תרוץ מיליוני פעמים, איך אפשר לספור את הביטים של מספר בן 32 סיביות באמצעות ארבע חיפושים בטבלה של 256 ספירות שחושבו מראש?

איפוס הקוד
def hammingWeight(n):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

n = 11

הפלט הצפוי

3