Я писал код на leetcode, чтобы перевернуть число в 32-битной среде. Эта ошибка появляется в тестовом примере, где x = -2147483648. Я видел другие решения той же проблемы и понимаю их, но я просто хочу знать, почему этот код неправильный.
Я хочу добиться изменения числа с помощью этого конкретного кода ..но когда мы запускаем его для вышеупомянутого тестового примера, он не работает.
Мне нужна помощь в выяснении, почему происходит эта ошибка.
ошибка говорит, что строка «x=-x» невозможно для типа 'int' для конкретного тестового примера. я попытался преобразовать переменную x в long int для того же самого, но все равно выдает ошибку.
long reverse(int x) {
if (x==0){
return 0;
}
bool n = false;
if (x0){
int rem;
rem = x%10;
x = x/10;
if ( (num*10) > (pow(2,31)-1) || (num*10) < -pow(2,31)){
return 0;
}
num = num*10 + rem;
}
if(n==true){
num = -num;
}
return num;
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... n-type-int