Untitled
unknown
c_cpp
a year ago
890 B
8
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