Detect Circular Pattern Match

Code

// 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", &reg, &pattern_cir);
    printf("%hhu", is_circular_match(reg, pattern_cir)); 
    return 0;
} 

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

45056 11

Expected Output

1