Другие языки программирования и технологии

дано натуральное число N. Определить является ли оно полиндромом. Паскаль

ПАлиндромом.

var m:integer; n,j,k:longint;
begin
readln(n); k:=n; m:=0; j:=0;
repeat j:=k mod 10+j*10; k:=k div 10; inc(m) until k=0;
writeln('Digits:',m,', Backwards:',j,', Palindrom:',j=n)
end.
Олег Волощук
Олег Волощук
50 110
Лучший ответ
Определил, не является
Эх, гулять так гулять! Проверим число на "палиндромность" в разных системах счисления:

PROGRAM Palindrom;

TYPE
pDigit = ^tDigit;
tDigit = record
Value :Integer;
Prev : pDigit;
Next : pDigit;
end;

VAR
N, base, tmp, Digit :Integer;
firstDigit, lastDigit, digitsEntry :pDigit;
isPalindrom :Boolean;

BEGIN

{задаем проверяемое число}
N := 12321;

FOR base := 2 TO N-1 DO
BEGIN

tmp := N;
digitsEntry := NIL;

{разбираем число на двусвязный список цифр}
WHILE(tmp <> 0) DO
BEGIN
Digit := tmp MOD base;
IF (digitsEntry = NIL) THEN
BEGIN
new(firstDigit);
firstDigit^.Prev := NIL;
firstDigit^.Next := NIL;
lastDigit := firstDigit;
digitsEntry := firstDigit;
END
ELSE
BEGIN
new(lastDigit^.Next);
lastDigit^.Next^.Prev := lastDigit;
lastDigit := lastDigit^.Next;
lastDigit^.Next := NIL;
END;
lastDigit^.Value := Digit;
tmp := (tmp - Digit) DIV base;
END;

{проверяем, является ли список цифр палиндромом}
isPalindrom := True;
WHILE (firstDigit <> NIL) DO
BEGIN
isPalindrom := isPalindrom AND (firstDigit^.Value = lastDigit^.Value);
firstDigit := firstDigit^.Next;
lastDigit := lastDigit^.Prev;
END;

{если список цифр - палиндром, печатаем его}
IF (isPalindrom) THEN
BEGIN
Write(N, ' is palindrom in base ', base, ':');
WriteLn;
firstDigit := digitsEntry;
WHILE (firstDigit <> NIL) DO
BEGIN
Write(firstDigit^.Value, ' ');
firstDigit := firstDigit^.Next;
END;
WriteLn;
END;

{очищаем список цифр}
WHILE (digitsEntry <> NIL) DO
BEGIN
firstDigit := digitsEntry^.Next;
dispose(digitsEntry);
digitsEntry := firstDigit;
END;
firstDigit := NIL;
lastDigit := NIL;

END;

{приостанавливаем выполнение программы до выхода}
WriteLn('Press Enter');
ReadLn;

END.
Серега Каменев
Серега Каменев
24 825
у меня является. что делать будем?
Са?ынды?. 1988
Са?ынды?. 1988
22 439

Похожие вопросы