How to count the total set bits in all numbers from 1 to N in C#

1 Answer

0 votes
using System;
 
class Program
{
    static int count_set_bits(int n) { 
        int count = 0; 
        while (n > 0) { 
            count += n & 1; 
            n >>= 1; 
        } 
        return count; 
    } 
    static int count_total_set_bits(int n) { 
        int setBitCount = 0; 
       
        for (int i = 1; i <= n; i++) 
            setBitCount += count_set_bits(i); 
       
        return setBitCount; 
    } 
    static void Main()
    {
        int n = 6; 
        /*
            0001
            0010
            0011
            0100
            0101
            0110
        */
         
        Console.Write(count_total_set_bits(n)); 
    }
}


 
/*
run:
 
9
 
*/

 



answered Apr 12, 2019 by avibootz

Related questions

1 answer 212 views
1 answer 214 views
1 answer 188 views
1 answer 204 views
1 answer 212 views
1 answer 213 views
...