#include <stdio.h> #include <stdint.h> uint8_t is_circular_match(uint16_t reg, uint16_t target) { // Your code here volatile int i; for(i=1;i<=16;i++){ reg = (reg<<i) | (reg>>(16-i)); reg &= 0xFF; if(target==reg){ return 1; } } return 0; } int main() { uint16_t reg, target; scanf("%hu %hu", ®, &target); printf("%hhu", is_circular_match(reg, target)); return 0; }
Circular shift left a maximum of 16 times, if the target matches the reg after a shift operation, pattern is detected.
Test Cases
Test Results
Input
45056 11
Expected Output
1