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

โปรแกรมหาจำนวนบิต 1 ในตัวเลขที่กำหนดใน Python

สมมติว่ามีตัวเลข n เราต้องหาจำนวนบิต 1 ในการแทนค่าบинаร์ของตัวเลขนั้น

เช่น ถ้าอินพุตคือ 12 ผลลัพธ์จะเป็น 2

ขั้นตอนการแก้ปัญหา

  • count := 0
  • while n ไม่ใช่ 0 ทำ
    • count := count + (n AND 1)
    • n := floor(n / 2)
  • คืนค่า count

ตัวอย่างโค้ด

class Solution:
    def solve(self, n):
        count = 0
        while n:
            count += n & 1
            n >>= 1
        return count

ob = Solution()
print(ob.solve(12))

อินพุต

12

เอาต์พุต

2