Explanation
As we can see the maximum consecutive 1's in binary numbers are {15(4 consecutive 1's), (14, 7(consecutive 1's)), (3, 6, 11, 12, 13(consecutive 1's)), (1, 2, 4, 5, 8, 9, 10(1 consecutive 1's)), 0 (0 consecutive 1's). And here n & 1 produces a value that is either 1 or 0, depending on the least significant bit. This is a bitwise AND operation. or n >>= 1 means set n to itself shifted by one bit to the right. The expression evaluates to the new value of x after the shift.
Note: We can see that maximum consecutive 1's and maximum consecutive 0's may be less and equal to binary number digit(maximum digit in binary number).
All solution provided here are in C++ (CPP) if any reader wants these solutions in C, and Java comments below or sends a mail with your query like " day n solution in C / C++ / Java. Check the end of the post solutions with the full explanation.
For this problem, we are taking some numbers and also finding the binary of all numbers after that we can find the maximum consecutive 1's, take an example with a number between 1 to 15 and also write their binary number.
Number | Binary Number | Maximum Consecutive 1’s |
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 1 |
3 | 0011 | 2 |
4 | 0100 | 1 |
5 | 0101 | 1 |
6 | 0110 | 2 |
7 | 0111 | 3 |
8 | 1000 | 1 |
9 | 1001 | 1 |
10 | 1010 | 1 |
11 | 1011 | 2 |
12 | 1100 | 2 |
13 | 1101 | 2 |
14 | 1110 | 3 |
15 | 1111 | 4 |
As we can see the maximum consecutive 1's in binary numbers are {15(4 consecutive 1's), (14, 7(consecutive 1's)), (3, 6, 11, 12, 13(consecutive 1's)), (1, 2, 4, 5, 8, 9, 10(1 consecutive 1's)), 0 (0 consecutive 1's). And here n & 1 produces a value that is either 1 or 0, depending on the least significant bit. This is a bitwise AND operation. or n >>= 1 means set n to itself shifted by one bit to the right. The expression evaluates to the new value of x after the shift.
Note: We can see that maximum consecutive 1's and maximum consecutive 0's may be less and equal to binary number digit(maximum digit in binary number).
All solution provided here are in C++ (CPP) if any reader wants these solutions in C, and Java comments below or sends a mail with your query like " day n solution in C / C++ / Java. Check the end of the post solutions with the full explanation.
Tip: Always try to implement your own logic this will help you to solve and build a logic. Before copying the program I recommended please read this full article, this will help you to build your own logic.
Submit Your Solution Here: Click Here
Submit Your Solution Here: Click Here
Maximum Binary Sum Hackerrank Solution in C
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int main() {
int n, count = 0, max = 0;
scanf("%d", & n);
while (n) {
if (n & 1)
count++;
else
count = 0;
if (max < count)
max = count;
n >>= 1;
}
printf("%d", max);
return 0;
}
Binary Numbers Hackerrank Solution in C++
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
int main() {
int n, count = 0, max = 0;
cin >> n;
while (n) {
if (n & 1)
count++;
else
count = 0;
if (max < count)
max = count;
n >>= 1;
}
cout << max;
return 0;
}
0 Comments: