#include <stdio.h> #include <stdint.h> void add_with_carry(uint8_t a, uint8_t b, uint8_t* result, uint8_t* carry) { // Your logic here uint8_t total_diff = 0; uint8_t diff_a = 0, diff_b = 0; *carry = 0; if(a > b){ diff_a = 255 - a; //255 - 200 = 55 if(diff_a <= b) // 55 <= 100 { *carry = 1; } }else { diff_a = 255 - b; if(diff_a <= a) { *carry = 1; } } *result = a + b; } int main() { uint8_t a, b, result, carry; scanf("%hhu %hhu", &a, &b); add_with_carry(a, b, &result, &carry); printf("%u ", result); printf("%u", carry); return 0; }
Test Cases
Test Results
Input
100 50
Expected Output
150 0