Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.10.2016, 22:37
Интересующийся
Отправить личное сообщение для johnsnow Посмотреть профиль Найти все сообщения от johnsnow
 
Регистрация: 01.10.2016
Сообщений: 10

помогите плиз
Дано натуральное число. Выяснить, является ли оно палиндромом («перевертышем»), т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.Нужно преобразовать этот код не используя строки и методы типо Math.floor,max,min
Ответить с цитированием
  #2 (permalink)  
Старый 16.10.2016, 23:02
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

function palindrome(num) {
    var tmp = num, res = 0, dig;
    while (tmp) {
        dig = tmp % 10;
        res = res * 10 + dig;
        tmp = (tmp - dig) / 10;
    }
    return res == num;
}
alert(palindrome(123321));
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2016, 06:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от johnsnow
Нужно преобразовать этот код не используя строки и методы типо Math.floor,max,min
Почему ранее предложенное не подходит, задание?

Никаких max и min и не требуется. Вот так можно проверить на палиндром не только число, но и слово, предложение.

function palindrome(s) {
    var res = true;
    s = s.toString().toLowerCase().replace(/\s/g,'');
        
    for(var i=0, j=parseInt(s.length/2), k=s.length-1; i<j; i++, k--) {
        if(s.charAt(i) != s.charAt(k)) {
            res = false;
            break;
        }        
    }
    
    return res;
}
alert('Число 123454321 ' + (palindrome(123454321) ? '' : ' не') + ' является палиндромом');
alert('Число 123456789 ' + (palindrome(123456789) ? '' : ' не') + ' является палиндромом');
alert('Строка "Аргентина манит негра" ' + (palindrome('Аргентина манит негра') ? '' : ' не') + ' является палиндромом');
alert('Строка "Аргентина ждет негра" ' + (palindrome('Аргентина ждет негра') ? '' : ' не') + ' является палиндромом');


Что сложного то - преобразуем значение в строку, удалим из нее пробелы. Длину входного значения делим пополам, отбрасывая десятичный результат (при нечетном числе знаков в строке средний одиночный символ будет равен сам себе), получая число итераций цикла. Далее в цикле с полученной итерацией проверяем крайние символы строки и если значения не равны, то признак палиндрома устанавливаем равный false, прерываем цикл и возвращаем результат.
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2016, 08:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124


функция проверки являетсяли число палиндромом из
первый палиндром в диапазоне min <= num, num <=max

function foo(a) {
    a += "";
    for (var b = 0; b < a.length / 2; b++)
        if (a.substr(b, 1) != a.substr(-(b + 1), 1)) return false;
    return true
};
alert("1 -> "+ foo(1));
alert("151 -> "+ foo(151));
alert("12300 -> "+ foo(12300));
alert("12375 -> "+ foo(12375));
alert("12975 -> "+ foo(12975));

Последний раз редактировалось рони, 17.10.2016 в 08:24.
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2016, 10:47
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Не должно быть преоразований в строку
http://www.cyberforum.ru/javascript/thread1827102.html
Ответить с цитированием
  #6 (permalink)  
Старый 17.10.2016, 11:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Poznakomlus
Не должно быть преоразований в строку
Я думал, чего-то такого простого надо, чтобы "у доски" ответить можно было. Тогда вообще не понятно чего хотят или просто пластинку заело?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите плиз с плагином kladr.js tenebrosus jQuery 5 16.10.2014 14:57
Помогите с мелкой проблемой плиз! first18 Элементы интерфейса 0 14.06.2014 16:42
ПОМОГИТЕ плиз!!! я Новичок нуждаюсь в помощи! Brand new you Javascript под браузер 1 11.10.2011 14:47
Помогите плиз mesq Оффтопик 6 28.06.2010 04:58
relative + fixed Помогите плиз( greatilya Internet Explorer 14 27.11.2008 03:29