Submission #20
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;
}