Checksum Validation

Code

#include <stdio.h>
#include <cstdint>
int validate_checksum(int *mem, int n) {  
    // CÓ THỂ LÀM THEO CÁCH KHÁC KO DÙNG PTR
   // uint8_t xor_resul =0;
   // for(uint8_t i=0; i<n;i++){
   //   xor_resul^=(uint8_t) mem[i];
   // }
    //uint8_t checksum=(uint8_t)mem[n-1];
    //return (xor_resul==checksum)?1:0;

    // Write your XOR scan logic here
   int *ptr=mem;
    uint8_t xor_resul=0;
  for(uint8_t i=0; i<n; i++){
      xor_resul ^= (uint8_t)*ptr; // xor từng giá trị khi quét trong mảng
       ptr++;
    }
   uint8_t checksum=(uint8_t)*ptr;
  return (xor_resul==checksum)?1:0;
}

int main() {
    int n, arr[100];
    scanf("%d", &n);
    
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    int result = validate_checksum(arr, n);
    printf("%d", result);

    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

5 10 20 30 40 60

Expected Output

0