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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2008, 15:40   #1
proger_noob
 
Регистрация: 04.12.2008
Сообщений: 5
По умолчанию Найти кол. палиндромов массива

Задание:
найти количество палиндромов одномерного массива...
никак не могу придумать алгоритм

может кто нить сталкивался с этим и решил
помогите плиз
ПО БКП недопуск нарисовывается
хотябы алгоритм примерный подкиньте

если что палиндром это число которое одинково читается с обоих сторон:
(121, 1221, 555, 676, 929 и т.д.)
proger_noob вне форума Ответить с цитированием
Старый 04.12.2008, 16:29   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Напиши булевскую функцию Palindrm(x:integer):boolean;, которой в массиве будешь проверять палиндром или не палиндром, если палиндром, считаешь.
Палиндром числа можно определить так:
Код:
N-число
M:=N; запомним
S:=0; новое число
while N>0 do
  begin
     k:=N mod 10;
     S:=10*S+m;
      N:=N div 10;
   end;
if S=M then Palindrom:=true
else Palindrom:=false;
end;
puporev вне форума Ответить с цитированием
Старый 04.12.2008, 18:33   #3
proger_noob
 
Регистрация: 04.12.2008
Сообщений: 5
По умолчанию

допустим массив:
12,121,145,666,775
N=a(1)=12
M=12
S=0
cikl:
k:= 12 mod 10 = 2
S:=10*0+12=12
N:= 12 div 10 =1
S=12 M = 12 (получается палиндром? 12 не палиндром?)
или я не то пощитал?


спасибо что ответил

Последний раз редактировалось proger_noob; 05.12.2008 в 13:29.
proger_noob вне форума Ответить с цитированием
Старый 04.12.2008, 18:35   #4
proger_noob
 
Регистрация: 04.12.2008
Сообщений: 5
По умолчанию

или после каждого тру надо счетчик поставить?
proger_noob вне форума Ответить с цитированием
Старый 04.12.2008, 18:52   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Код:
function palindrom(x: integer): boolean;
var
  j,l: integer;
  s: string;
begin
  result:=true;
  s:=inttostr(x);
  l:=length(s);
  for j:=1 to l do
    if s[j]<>s[l-j+1] then begin result:=false; break; end;
end;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 04.12.2008, 19:07   #6
proger_noob
 
Регистрация: 04.12.2008
Сообщений: 5
По умолчанию

а мы еще не учили эти зарезерв. слова
так чт сразу спалят что списал ))
proger_noob вне форума Ответить с цитированием
Старый 04.12.2008, 20:28   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот какую ты ахинею здесь написал?
k:= 12 mod 10 = 2
S:=10*0+12=12 //с какого? надо 10*0+2=2
N:= 12 div 10 =1 //1 mod 2 =1 S=2*10+1=21
S=12 M = 21 12 не палиндром
Если с головой не дружишь, не хами другим.
puporev вне форума Ответить с цитированием
Старый 05.12.2008, 13:29   #8
proger_noob
 
Регистрация: 04.12.2008
Сообщений: 5
По умолчанию

10*0+2=2
откуда +2?
вместо M у нас 12
в начале присвоили
я не хамил никому
я вооще то сказал спасибо
токо тон не тот подобрал
proger_noob вне форума Ответить с цитированием
Старый 05.12.2008, 13:34   #9
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Очень полезно пользоваться поиском по форуму:

http://www.programmersforum.ru/showt...ED%E4%F0%EE%EC
http://www.programmersforum.ru/showt...ED%E4%F0%EE%EC
http://www.programmersforum.ru/showt...ED%E4%F0%EE%EC
http://www.programmersforum.ru/showt...ED%E4%F0%EE%EC
http://www.programmersforum.ru/showt...ED%E4%F0%EE%EC
http://www.programmersforum.ru/showt...ED%E4%F0%EE%EC
Познавая других, мы познаем себя.
С'est la vie...

Последний раз редактировалось SuperVisor; 05.12.2008 в 13:37.
SuperVisor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти все числа из массива B(n), встречающиеся более чем в одной строке матрицы A(m,n). Alexander89 Паскаль, Turbo Pascal, PascalABC.NET 2 16.10.2008 12:41
Нахождение слов-палиндромов ("перевертышей") 1234 Помощь студентам 16 26.05.2008 19:01
Найти разность суммы элементов массива В(20) с чётными номерами... никита989 Помощь студентам 6 16.01.2008 13:51
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44