# C Exercises: Calculate the number of 1's in their binary representation and return them as an array

## C Programming Mathematics: Exercise-14 with Solution

For a non negative integer in the range 0 ≤ i ≤ n write a C program to calculate the number of 1's in their binary representation and return them as an array.

Example:

Input:

Number: 7

Number of 1's in the binary representation:

0: 0

1: 1

2: 1

3: 2

4: 1

5: 2

**Sample Solution:**

**C Code:**

```
#include <stdio.h>
#include <stdlib.h>
// Function to count the number of set bits (1s) in the binary representation of numbers from 0 to 'num'
int* count_Bits(int num, int* returnSize) {
int *p, i;
// Allocate memory for the array to store the count of set bits
p = malloc((num + 1) * sizeof(int));
*returnSize = num + 1; // Set the return size to 'num + 1'
p[0] = 0; // The count of set bits in 0 is 0
for (i = 1; i <= num; i++) {
// Use bitwise manipulation to count the set bits for each number
// Count the number of set bits by using the formula: p[i] = p[i & (i - 1)] + 1
p[i] = p[i & (i - 1)] + 1;
}
return p; // Return the array containing the count of set bits for numbers from 0 to 'num'
}
// Main function to test the count_Bits function and display the count of set bits for numbers up to 'num'
int main(void) {
int *p;
int returnSize;
int i = 7;
printf("Number: %d", i);
printf("\nNumber of 1's in the binary representation:\n");
// Calculate and display the count of set bits for numbers up to 5
p = count_Bits(5, &returnSize);
for (i = 0; i < returnSize; i++) {
printf("%X:\t%d\n", i, p[i]);
}
free(p); // Free the dynamically allocated memory
return 0;
}
```

Sample Output:

Number: 7 Number of 1's in the binary representation: 0: 0 1: 1 2: 1 3: 2 4: 1 5: 2

**Flowchart: **

**C Programming Code Editor:**

**Improve this sample solution and post your code through Disqus.**

**Previous:** Write a C programming to check if a given integer is a power of three.

**Next:** Write a C programming to get the maximum product from a given integer after breaking the integer into the sum of at least two positive integers.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.**

https://www.w3resource.com/c-programming-exercises/math/c-math-exercise-14.php

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics