Untitled
unknown
c_cpp
9 months ago
890 B
6
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