Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача по определению палиндрома.

Автор: ADs 18.10.2003 17:52

Определить, явдяется ли заданное натуральное число палиндромом, т.е. таким, десятичная запись которого читается одинаково слева направо и справа налево.
Массивы использовать нельзя (только циклы).

Автор: Camel_Toe 18.10.2003 18:17

ну ты и ламер, такую задачу я в классе девятом уже мог решить.....

Автор: GLuk 18.10.2003 20:12

2Camel_Toe: А ты случаем сам не ламер? >:( Я вот, например, асм знал уже в 10 классе, но я же этим не выпендриваюсь. Может быть он учится в 5 классе, ты не думал об этом? А вот этой своей фразой, ты по-моему ставишь себя намного выше ADs.
Во-всяком случае можно было спросить, что он уже сделал или типа того, но без оскорблений...

Автор: ___ALex___ 18.10.2003 21:06

я тоже хотел об этом сказать...

Автор: ___ALex___ 18.10.2003 21:28

Код
function IsPolindrom(const N: Integer): Boolean;
var
i: Byte;
S: String;
begin

IsPolindrom := False;
Str(N, S);
for i := 1 to Length(S) div 2 do
if S[i] <> S[Length(S) - i + 1] then Exit;
IsPolindrom := True

end;

Автор: ADs 19.10.2003 1:15

Pascal  я начал изучать всего месяц назад и не знал такого оператора, как Length. Это и вызвало мое затруднение в этой задаче, т.к. не мог определить кол-во символов в числе. Сейчас я уже разобрался, поэтому БОЛЬШОЕ СПАСИБО!

Автор: trminator 19.10.2003 18:20

Кстати, строка тоже массив... а массивы использовать нельзя

Автор: ___ALex___ 19.10.2003 19:06

trminator
так-то да, но там скорее имелись ввиду "обычные" массивы(те что объявляются словечком Array)
а если выделять цифры из цисла(дык в строку не преобразовывать)
- это будет медленней, ИМХО

Автор: ADs 20.10.2003 0:22

Нашел в нете решение без Length:

Код
program Palindrom;
var k,n,m:longint;
begin
 write('vvedite chislo  ');
 readln(n);
 m:=n; k:=0;
    while m div 10<>0 do {sobiraem chislo v obratnom poryadke}
    begin
    k:=k*10+m mod 10;
    m:=m div 10
    end;
 k:=k*10+m mod 10;
 if k=n then writeln('palindrom')
      else writeln('no palindrom');
 readln;
end.

Автор: ___ALex___ 20.10.2003 0:27

ADs
я ж писал, что можно, только медленней это

Автор: AlaRic 20.10.2003 16:41

Camel_Toe: за собой лучше следи, а других участников не суди!

Автор: Camel_Toe 20.10.2003 21:08

не суди сам, да не судим будишь.....

Автор: Nightmare 24.10.2003 22:22

2 Camel_Toe:
А Вам Мама в детстве не говорила, что спорить с SysAdmin'ом - неприлично?

Автор: error_404 24.10.2003 23:42

Цитата
2 Camel_Toe:
А Вам Мама в детстве не говорила, что спорить с SysAdmin'ом - неприлично?

и опасно для жизни? ;-)