Untitled
unknown
c_cpp
a year ago
890 B
16
Indexable
#include <stdio.h>
#include <regex.h>
#include <stdbool.h>
#include <string.h>
#define MAX_BINARY_SIZE 1048576
bool is_power_of_two(const char* binary) {
regex_t regex;
const char* pattern = "^0*10*$";
int reti;
reti = regcomp(®ex, pattern, REG_EXTENDED);
reti = regexec(®ex, binary, 0, NULL, 0);
regfree(®ex);
return reti == 0;
}
int main() {
int n;
scanf("%d", &n);
getchar();
for (int i = 0; i < n; i++) {
char binary[MAX_BINARY_SIZE];
fgets(binary, sizeof(binary), stdin);
size_t binary_length = strlen(binary);
if (binary_length > 0 && binary[binary_length - 1] == '\n') {
binary[binary_length - 1] = '\0';
}
if (is_power_of_two(binary)) {
printf("True\n");
} else {
printf("False\n");
}
}
return 0;
}
Editor is loading...
Leave a Comment