#include <stdio.h>
#include <stdint.h>
uint8_t is_circular_match(uint16_t reg, uint16_t target) {
// Your code here
int i = 0;
uint16_t reg1 = reg;
if(target == 0) return 0;
for(i = 0; i<16; i++){
if((reg1 & target) == target)
return 1;
reg1 = ((reg1<<1) |((reg1 & 0x8000)>>15));
}
reg1 = reg;
for(i = 0; i<16; i++){
if((reg1 & target) == target)
return 1;
reg1 = ((reg1>>1) |((reg1 & 0x0001)<<15));
}
return 0;
}
int main() {
uint16_t reg, target;
scanf("%hu %hu", ®, &target);
printf("%hhu", is_circular_match(reg, target));
return 0;
}
Input
45056 11
Expected Output
1