Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2020, 21:59
Новичок на форуме
Отправить личное сообщение для igorridinger Посмотреть профиль Найти все сообщения от igorridinger
 
Регистрация: 07.04.2020
Сообщений: 3

палиндром О НЕТ, ОПЯТЬ кто то это спрашивает
Здравствуйте! надо выполнять проверку является число палиндромом или нет, его надо решить именно через циклы. я делал в том числе с учётом подсказок которые мне дали в том месте. я чувствую будто уже близко к решению, но как будто упускаю что то важное. вот сам код

var poly = 1221;
var ylop = 0;
var isPalindrome = false;
var x=0;
var y=0;
var z=0;
var k=0;

for (var i=0; i>=poly; i++){
x=poly%10;
y=poly/10;
z=(10*x)+(y%10);
k=z/10;
ylop=(z*10)+(k%10);
}if(ylop=poly){
isPalindrome=true
}else{
isPalindrome=false
}

есть вариант с округлением, который даёт такой же результат (никакой) . считаю нужным что только изучаю javascript и с функцией как я понял которой как правило всё это решается я не знаком
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2020, 02:09
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

<script>
function reverseNumber(value) {
      var tmp = 0, flag = 0 > value;
      flag && (value *= -1);
      while (value > 0) {
      tmp *= 10;
      tmp += value % 10;
        value = parseInt(value / 10);
      }
      return flag ? -tmp : tmp;
    }
alert (1221 === reverseNumber(1221));
</script>

Вариант

Последний раз редактировалось Vlasenko Fedor, 08.04.2020 в 02:22.
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2020, 17:36
Новичок на форуме
Отправить личное сообщение для igorridinger Посмотреть профиль Найти все сообщения от igorridinger
 
Регистрация: 07.04.2020
Сообщений: 3

не пойдёт, надо именно через циклы

да и я ни слова не понял)
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2020, 18:19
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от igorridinger
надо именно через циклы
while это и есть цикл
Сообщение от igorridinger
да и я ни слова не понял)
вперед учебник учить
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2020, 18:59
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Poznakomlus, а кто будет проверять на Number.MAX_SAFE_INTEGER? Зачем отрицательные значения обрабатываются отдельно?

function reverseNumber(value) {
	let result = 0n;

	while(value !== 0n) {
		result = 10n * result + value % 10n;
		value /= 10n;
	}

	return result;
}

alert(1221n === reverseNumber(1221n));


При помощи рекурсии...
function reverseNumber(value, result = 0n) {
	return value === 0n ? result : reverseNumber(value / 10n, 10n * result + value % 10n);
}
alert(1221n === reverseNumber(1221n));
Ответить с цитированием
  #6 (permalink)  
Старый 22.04.2020, 02:04
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Malleys,
Вижу тебе тоже бывает скучно. Немогу плюсануть
Ответить с цитированием
  #7 (permalink)  
Старый 22.04.2020, 15:15
Новичок на форуме
Отправить личное сообщение для azolkin Посмотреть профиль Найти все сообщения от azolkin
 
Регистрация: 14.02.2013
Сообщений: 3

let num = 12321;
  let str = num.toString();
  let result = true;
  for (let i = 0; i < Math.trunc(str.length / 2); i++) {
    if (str[i] != str[str.length - i - 1]) result = false;
  }
  alert(result);

Последний раз редактировалось azolkin, 24.04.2020 в 20:36.
Ответить с цитированием
  #8 (permalink)  
Старый 29.04.2020, 10:17
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

Azolkin, увидел твое решение уже после публикации))

function fn (num) {
    let str = String(num);
    for(let i = 0; i < Math.trunc(str.length / 2); i++){
           if ( str[i] != str[str.length-i-1]) return false
   }
   return true
}

alert(fn(1221))

Последний раз редактировалось caetus, 29.04.2020 в 10:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто знает что это за ошибка! error500 Vahe Серверные языки и технологии 4 06.06.2011 02:13
Работа с radiobutton djsadd Элементы интерфейса 2 06.04.2011 08:37
Кто рисует это? greatilya Оффтопик 2 19.01.2011 13:19
Нужно ли в этом примере (это) объявление переменных или нет? sashka++ Общие вопросы Javascript 5 31.07.2010 04:47
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39