Submission #20
Submitted by test
Problem Reverse Integer
Language c
Time 1.0
Memory 0.0
Submitted Code
#include <stdio.h>
#include <limits.h>

int reverse(int x) {
    int result = 0;
    while (x != 0) {
        int digit = x % 10;

        // Check for overflow before actually doing result * 10 + digit
        if (result > INT_MAX / 10 || (result == INT_MAX / 10 && digit > 7))
            return 0;
        if (result < INT_MIN / 10 || (result == INT_MIN / 10 && digit < -8))
            return 0;

        result = result * 10 + digit;
        x /= 10;
    }
    return result;
}

int main() {
    int x;
    scanf("%d", &x);
    int reversed = reverse(x);
    printf("%d\n", reversed);
    return 0;
}