Я пишу код на c ++, чтобы определить, является ли входное число номером палиндрома, что означает, что его обратное значение совпадает с исходным. У меня проблемы с вычислением обратной INT.
например.
121 returns true;
123 returns false;
12321 returns true;
10 returns false;
Я ввожу 123, а сумма должна быть 321. Однако мой код продолжает возвращать 386. Я вошел в функцию с помощью xcode. Тем не менее, я понятия не имею, почему обратные + = (3 * 10) + 2 поворота равны 35 или почему окончательное обратное число равно 386.
int origin = x;
int reverse = 0;
while (x != 0) {
int digit = x % 10;
reverse += ((reverse * 10) + digit);
x /= 10;
}