Палиндром, простое понятное решение.

Может кому будет полезно.
Идея в том, что переменную ylop мы превращаем в строку, и тогда можем спокойно записывать туда значения простой конкатенацией, а не с помощью сложной арифметики. Потом переводим ylop обратно в число и сравниваем с poly.

let poly = 1221;
let ylop = ‘’;
let isPalindrome = false;
let current = poly;

while (current) {
ylop += String(current % 10);
current /= 10;
current = Math.floor(current);
}

ylop = Number(ylop);

if(poly === ylop) {
isPalindrome = true;
}

console.log(isPalindrome);

let currentPoly = poly;

while (currentPoly > 1) {
 ylop += ''  + Math.floor(currentPoly % 10);
 Math.floor(currentPoly /= 10);
}

isPalindrome = poly === +ylop ? true : false;

Предлагаю ещё более простое и понятное решение без каких-либо остатков от деления на 10.

Сводка

let poly = 12721;
let ylop = ‘’;
let isPalindrome;
let str = String(poly)

for (let i = str.length -1; i >= 0; i–) {
ylop += str[i]
}
ylop = Number(ylop)

if (ylop === poly) {
isPalindrome = true;
} else {
isPalindrome = false;
}

Мое решение:

let poly = 1221;
let ylop = 0;
let isPalindrome = false;

for (let i = poly; i >= 1; i /= 10){
  let tempNumber = Math.floor(i % 10);
  
  ylop = (ylop * 10) + tempNumber;
}

if (ylop === poly){
  isPalindrome = true;
}
1 лайк