Ai rồi cũng sẽ khát
Junior Member
C:
#include <stdio.h>
#include <stdbool.h>
void main() {
int number = 0;
int count = 0;
int max_length = 0;
bool isChanged = false;
printf("Nhap so dang thap phann");
scanf("%d", &number);
if (number == 0) {
max_length = 1;
}
while (number != 0) {
if (number % 2 == 1) {
count++; // bit 1
} else {
if (isChanged) {
// 2 bit 0 lien tiep thi reset counting
isChanged = false;
if (max_length < count) {
max_length = count;
}
count = 0;
} else {
// Bit 0 dau tien, lat bit
isChanged = true;
count++;
}
}
number = number >> 1;
}
if (max_length < count) {
max_length = count;
}
printf("Max = %d\n", max_length);
}
TEST:
1831935: 110111111001111111111 => 11
28623: 110111111001111 => 9
Last edited by a moderator: