int num_palindroms(int N) { // функция принимает число типа int, для проверки на палиндром
int _N = 0; // переменная под перевёрнутое число
int temp = N; // временная переменная, инициализируется значением входного параметра
while (temp) { // цикл продолжается до тех пор, пока temp не станет равной нулю
_N += temp % 10; // переменной _N присваивается остаток от деления на 10 временной переменной
_N *= 10; // _N умножается на 10, значение переменной увеличивается на порядок
temp /= 10; // значение temp делится на 10, отсекается последняя цифра
// так будет продолжаться до temp = 0
}
_N /= 10; // в цикле переменная _N была лишний раз умножена на 10, здесь ошибка исправляется
if (N == _N) return _N; //Вернет 1 если палиндром
else return 0; //...0 если не палиндром
}