// Detect Circular Pattern Match #include <stdio.h> #include <stdint.h> uint8_t is_circular_match(uint16_t reg, uint16_t pattern_cir){ for(uint8_t i = 0; i<16; i++){ uint8_t back = 16 - i; uint16_t tmp = reg; uint16_t right = (tmp >> back) & 0xFFFF; tmp = tmp << i; tmp = tmp | right; if(tmp == pattern_cir) return 1; } return 0; } int main(){ uint16_t reg, pattern_cir; scanf("%hu %hu", ®, &pattern_cir); printf("%hhu", is_circular_match(reg, pattern_cir)); return 0; }
Test Cases
Test Results
Input
45056 11
Expected Output
1