Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 19:51   #1
Princesse
 
Регистрация: 01.10.2009
Сообщений: 8
По умолчанию Определить, является ли число палиндромом

Необходимо выполнить задание - написать JS-код, с помощью которого можно определить, является ли натуральное число палиндромом или нет. Использовать нужно цикл, числа в строки не преобразовывать. Помогите, кому не сложно, пожалуйста. Заранее спасибо
Princesse вне форума Ответить с цитированием
Старый 01.10.2009, 20:13   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

да не сложно, помогу - 100$
свободен...
wall66 вне форума Ответить с цитированием
Старый 01.10.2009, 20:27   #3
Princesse
 
Регистрация: 01.10.2009
Сообщений: 8
По умолчанию

спасибо, конечно, но жадных людей или страдающих сильным *остроумием* просьба не беспокоиться...хотелось бы увидеть конкретные советы по составлению алгоритма и написанию кода
Princesse вне форума Ответить с цитированием
Старый 01.10.2009, 20:30   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
хотелось бы увидеть
людей, читающих правила форума.
Цитата:
Как бы вы ни назвали свою тему, как бы вы ни ухищрялись, если в тексте будет ваша учебная задачка, которую вам ну позарез нужно решить, и не будет вашего собственного кода - такие темы или вопросы будут моментально удаляться, а нарушитель - получать нарушение №1 - "Флуд" и штраф 2 очков.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 20:39   #5
Princesse
 
Регистрация: 01.10.2009
Сообщений: 8
По умолчанию

мой код мало чем может помочь здесь,поэтому и не выложен. javascript только начали изучать,пока не разбираюсь в нем совершенно.тем более,как уже написано было,даже не представляю, каким должен быть алгоритм решения.соответственно,то,что я покажу,кодом вообще назвать сложно.
Код:
<js> 
<html>
<head>
<title>Палиндром или нет?</title>
<script type="text/JavaScript">
function ab (obj)
{var a=Number(obj.chislo.value);
var b=Number(a.charAt(0));
var c=Number(a.charAt(1)); 
var d=Number(a.charAt(n));
do{
var l="является";break;
}
while (b==d);
if (b!=d)
{var l="не является";}
else{};
obj.otvet.value=l;
}
</script>
</head>
<body bgcolor="#F0FFFF">
<h2>Является ли число палиндромом?</h2>
<form name="forma">
Введите натуральное число и нажмите на кнопку:<br><br>
<input type="text" name="chislo"><br><br>
<input type="button" value="Определить" onClick="ab(forma)"><br><br>
Данное число палиндромом
<input type="text" name="otvet"><br><br>
<input type="reset">
</form>
</body>
</html>
</js>
оформляйте код! //модератор

Последний раз редактировалось SkyM@n; 01.10.2009 в 20:53.
Princesse вне форума Ответить с цитированием
Старый 01.10.2009, 21:38   #6
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

ну ладно, алгоритм следующий:

чтобы определить является ли число палиндромом нужно сравнить его с ним же, только записанным в обратном порядке (соответственно если они равны - число палиндром, если нет - то нет)

так что задача состоит в том чтобы записать число в обратном порядке (в обратную сторону, наоборот и т п)

учитывая ограничение в том что нельзя использовать строки (а препод сам-то сможет это решить ???), процесс "переворачивания" немного затрудняется, но, если у вас не было проблем с математикой - тут все просто:

первой цифрой второго числа будет последняя цифра первого
"последняя цифра первого" - это, к примеру, остаток от деления его на 10
так что вычисляем эту цифру, плюсуем ко второму числу и идем дальше

вторую цифру можно вычислить точно также (впрочем и третью, и четвертую тоже), но для этого нужно избавиться от лишней цифры в первом числе, которую мы уже перекинули
так что вычитаем из первого числа тот же остаток от деления и делим его на 10 - последняя цифра мистическим образом исчезнет
после этого снова находим остаток от деления на 10 и перекидываем во второе число (чтобы оно перекинулось куда надо - нужно подготовить для нее место, т е пустой разряд, для этого умножим второе число на 10)
снова плюсуем остаток ко второму числу и повторяем все эти операции, пока первое число не кончится (проверять кончилось ли оно лучше всего после убирания очередной цифры)

если кончилось - готово, у вас есть сохраненное первое число (вы ведь не забыли его на всякий случай сохранить в первоначальном виде ?) и перевернутое второе
остается их сравнить и сделать нужные выводы




надеюсь, вы не являетесь серийной убийцей и я не зря пытался вам помочь
свободен...

Последний раз редактировалось wall66; 01.10.2009 в 21:40.
wall66 вне форума Ответить с цитированием
Старый 01.10.2009, 22:00   #7
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Код HTML:
 function isPalindrom(num) {
	num += '';
	if (parseInt(num.length/2)*2 == num.length) {
	  nc = num.length/2;
	  var res = 0;
	  for (c=0;c<=num.length/2-1;c++) {
	    res += (num.substr(c,1) == num.substring(num.length-c-1,num.length-c));
	  }
	} else {
	  return "Это число не может быть палиндромом. Количество цифр - непарное: " + num.length;
	}
	return "Число " + num + ((res==num.length/2)?"":" не")  + " является палиндромом.";
      }
Пример тут
SkyM@n вне форума Ответить с цитированием
Старый 01.10.2009, 22:02   #8
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
...
сказано же, в строки переводить нельзя
свободен...
wall66 вне форума Ответить с цитированием
Старый 02.10.2009, 00:18   #9
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от wall66 Посмотреть сообщение
сказано же, в строки переводить нельзя
А, точно, недосмотрел.
Ну в любом случае,
updated: http://volynrada.gov.ua/samples/test15.htm
SkyM@n вне форума Ответить с цитированием
Старый 02.10.2009, 00:23   #10
Princesse
 
Регистрация: 01.10.2009
Сообщений: 8
По умолчанию

спасибо большое за помощь!
Princesse вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить, является ли матрица магическим квадратом. drakon803 Помощь студентам 11 14.12.2011 14:29
Определить является ли данное число совершенным.. Паскаль. Karabas Помощь студентам 6 23.12.2008 21:53
является ли заданное натуральное число совершенным Савинова Помощь студентам 3 19.11.2008 09:51
определить является ли четырехугольник квадратом Ntfser Общие вопросы Delphi 2 18.10.2008 16:48
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43