ну сразу скажу, что я бы так не стал решать, лишь поправил скрипт топикстартера
значит так:
у нас есть переменная БОБА что является клоном “поли”. почему не сама поли? ну нам надо произвести некоторые операции над ней, а потом сравнить с эталоном. поэтому саму поли не трогаем, а работаем с её клоном.
в бибу пишем целочисленный остаток от деления “клона поли” на 10 на каждой итерации (1 строка цикла). при этом клон поли делится на 10 на каждой итерации и дробная часть отсекается округлением вниз и потом клон поли перезаписывается (3 строка цикла).
в результате на каждой итерации мы берем остаток от деления на 10 и делаем из него строку с помощью метода для представления строк .toString() (можно было бы с тем же успехом складывать с пустой строкой - конкатенация строк сделала бы эту цифру строкой). И складываем уже с полученным из предыдущей итерации “илоп”.
ylop += biba.toString();
можно развернуть как ylop = ylop + biba.toString();
Рассмотрим на собачках примере из псевдокода:
поли = 1221, значит боба = 1221
илоп = 0 (с тем же успехом он бы мог быть пустой строкой ""
)
пока (боба > 0) {
1221 > 0 (истина)
1 итерация:
остаток от деления = 1221 % 10 = (1220 + 1) % 10 => 1 в остатке
илоп = илоп + “1” = 0 + “1” = “01”;
боба = округлить_вниз( 1221 / 10) = округлить_вниз ( 122.1 ) = 122;
=====конец 1 итерации =====
122 > 0 (истина)
2 итерация:
остаток от деления = 122 % 10 = (120 + 2) % 10 => 2 в остатке
илоп = илоп + “2” = “01” + “2” = “012”;
боба = округлить_вниз( 122 / 10 ) = округлить_вниз ( 12.2 ) = 12;
=====конец 2 итерации =====
12 > 0 (истина)
3 итерация:
остаток от деления = 12 % 10 = (10 + 2) % 10 => 2 в остатке
илоп = илоп + “2” = “012” + “2” = “0122”;
боба = округлить_вниз( 12 / 10 ) = округлить_вниз ( 1.2 ) = 1;
=====конец 3 итерации =====
1 > 0 (истина)
4 итерация:
остаток от деления = 1 % 10 = единица меньше делителя, значит она и есть остаток => 1 в остатке
илоп = илоп + “1” = “0122” + “1” = “01221”;
боба = округлить_вниз( 1 / 10 ) = округлить_вниз ( 0.1 ) = 0;
=====конец 4 итерации =====
1 > 0 (ложь)
=====КОНЕЦ ЦИКЛА=====
итоги:
илоп = “01221”;
биба = 1;
боба = 0;
если ( “01221” == 1221 ) { isPalindrome = истина }
1221 = 1221 (истина)
значит это палиндром