Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จำนวน 1 บิตใน Python


สมมติว่าเรามีหมายเลขที่ไม่ได้ลงชื่อ n เราต้องหาจำนวน 1s ในการแทนค่าเลขฐานสองของตัวเลขนี้ นี้เรียกว่าน้ำหนักแฮม ดังนั้นหากตัวเลขเช่น 000000101101 ผลลัพธ์จะเป็น 4

เพื่อแก้ปัญหานี้ เราจะใช้ขั้นตอนเหล่านี้ -

  • นำตัวเลขแล้วแปลงเป็นสตริงไบนารี
  • กำหนดจำนวน =0
  • สำหรับแต่ละอักขระ e ในสตริงไบนารี
    • ถ้าตัวละครเป็น '1' ให้เพิ่มจำนวนขึ้น 1
  • จำนวนคืนสินค้า

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

class Solution(object):
   def hammingWeight(self, n):
      """
      :type n: int
      :rtype: int
      """
      n = str(bin(n))
      print(n)
      one_count = 0
      for i in n:
         if i == "1":
            one_count+=1
      return one_count
num = "000000101101"
ob1 = Solution()
print(ob1.hammingWeight(num))

อินพุต

num = "000000101101"

ผลลัพธ์

4