สมมติว่าเรามีตัวเลข n เราต้องหาจำนวนบิต 1 ที่มีอยู่ในการแทนค่าไบนารีของตัวเลขนั้น
ดังนั้นหากอินพุตเท่ากับ 12 เอาต์พุตจะเป็น 2
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- นับ :=0
- ในขณะที่ n ไม่ใช่ศูนย์ ให้ทำ
- นับ :=นับ + (n AND 1)
- n :=ชั้นของ (n / 2)
- จำนวนคืนสินค้า
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
คลาสโซลูชัน:def Solve(self, n):count =0 while (n):count +=n &1 n>>=1 return countob =Solution()print(ob.solve(12))ก่อน>อินพุต
12ผลลัพธ์
2