Добрый день. Подскажите, почему не проходит такой вариант? Результат выдает верный в playcode, а Кекс выдает Error : Timeout error.
let poly = 1221;
let ylop = 0;
let isPalindrome = false;
for (let i = poly; i > 0; i = Math.floor(((poly % 10) * 10) + (poly / 100) % 10)) {
Фига Вы сложную какую-то математику в подсказке предложили. Я так её до конца и не понял. Сделал так:
var poly = 1221;
var ylop = 0;
var isPalindrome = false;
ylop = ‘’;
var newPoly = poly;
while (newPoly > 0.1) {
var number = newPoly % 10;
newPoly = Math.floor(newPoly / 10);
ylop += number;
}
if (poly == ylop) {
isPalindrome = true;
}
Хотя можно в конце ylop опять в число превратить и использовать строгое сравнение:
if (poly === +ylop) {
isPalindrome = true;
}
Так у вас в коде в первой проверке сравнение идёт с нулём, а комментируя код построчно вы сравниваете число в первой проверке с 10ю. Наверное надо в коде сравнивать с десятой всё таки, когда речь идёт о разрядности
Не понимаю только один момент: напримет, проверял числом 1234, в предпоследней итерации counter = (12 - 2) / 10. Дальше начинается последняя итерация и 1 % 10 возвращает 1. В проверке аналогично имеем 7 % 10 возвращает 7.
Вот где написано, что если число меньше 10, то остаток от деления этого числа на 10 и будет это число?) Всю голову сломал)