-
Notifications
You must be signed in to change notification settings - Fork 20.7k
Open
Labels
Description
What would you like to Propose?
Title: Add Efficient Algorithm to Count Total Set Bits from 1 to N
🧠 Overview
This contribution adds a bit manipulation algorithm that counts the total number of set bits (1s) in binary representation of all numbers from 1 to N efficiently — much faster than naive iteration.
🧩 Problem Description
Given an integer N, compute the total count of bits set to 1 in all numbers from 1 up to N.
For example, N = 3 → Binary(1)=1, Binary(2)=10, Binary(3)=11 → Total set bits = 4.
📂 Implementation Details
- Folder:
src/main/java/com/thealgorithms/bitmanipulation/ - Filename:
CountTotalSetBits.java - Approach: Use recursion or bit-pattern observation (
N/2,N/4, etc.) to reduce time complexity to O(log N).
✅ Expected Deliverables
- Well-commented Java code with clear explanation of logic.
- Unit tests for small and large values of N.
- Comparison with naive loop-based method (optional).
- Include complexity analysis in code comments.
🧑💻 Additional Notes
This algorithm provides an elegant use of bit patterns and helps learners understand bitwise counting techniques.
Issue details
🧩 Problem Description
Given an integer N, compute the total count of bits set to 1 in all numbers from 1 up to N.
For example, N = 3 → Binary(1)=1, Binary(2)=10, Binary(3)=11 → Total set bits = 4.
Additional Information
No response