
СРОЧНО ПЛИИИИИЗ!!!! ДАЮ 75 Баллов →Pascal ABC←Алексей готов к финальной стадии своего проекта! Он
хочет узнать, сколько людей имеют номер телефона с «зеркальной частью». Содержащими зеркальную часть, Алексей считает такие номера, в которых можно найти последовательность цифр w-x-y-y-x-w, либо x-y-y-x (при этом w, x, y не равны друг другу, иначе номер красивым не считается!) Например, 4123321 – последовательность с зеркальной частью, а 1234321 – нет. Помогите статистику Алексею провести это важное исследование и выяснить, какое количество номеров среди представленных содержат зеркальную часть.Формат входных данныхВ первой строке вводится N (0 < N < 100) - количество номеров. В следующей строке вводится N чисел разрядностью от пяти до девяти знаков.Формат выходных данныхВыведите количество номеров, у которых есть зеркальная часть.Примеры:входные данные 6345284482 7658668 74554766 76133145 837567 923342выходные данные4

Ответы на вопрос

Для решения задачи с Вашими входными данными подходит, но может быть ошибка с другими данными, о которых я не подумал.
Var a:array [1..9] of integer;
i,n,q,u,o,p,y:integer;
begin
read (n);
For i:=1 to n do begin
read (u);
q:=u;
while q<>0 do begin
p:=p+1;
q:=q div 10;
end;
q:=u;
For o:=1 to p do begin
a[o]:=q mod 10;
q:=q div 10;
end;
For o:=3 to p do
If (a[o]=a[o-1]) and (o>2) and (a[o+1]=a[o-2]) and (a[o]<>a[o+1]) and (p<>4) then y:=y+1 else
If (p>6) and (a[o]=a[o-1]) and (o>3) and (a[o+1]=a[o-2]) and (a[o+2]=a[o-3]) and (a[o]<>a[o+1]) and (a[o+1]<>a[o+2]) and (a[o]<>a[o+2]) and (p<>6) then y:=y+1;
For o:=1 to p do
a[o]:=-1;
p:=0;
end;
write (y);
end.



Для решения задачи нужно пройтись по каждому номеру и проверить наличие зеркальной части. Для этого можно использовать строковые операции.
Вот пример кода на языке Pascal ABC:
arduinovar
N, i, j: integer;
phone: string;
hasMirrorPart: boolean;
begin
// Читаем количество номеров
readln(N);
// Счетчик номеров с зеркальной частью
j := 0;
// Читаем каждый номер и проверяем наличие зеркальной части
for i := 1 to N do
begin
readln(phone);
hasMirrorPart := false;
// Проверяем наличие последовательности w-x-y-y-x-w
for j := 1 to length(phone) - 5 do
begin
if (phone[j] <> phone[j+5]) and (phone[j+1] = phone[j+4]) and
(phone[j+2] = phone[j+3]) and (phone[j] <> phone[j+1]) and
(phone[j+1] <> phone[j+2]) and (phone[j+2] <> phone[j+3]) and
(phone[j+3] <> phone[j+4]) and (phone[j+4] <> phone[j+5]) then
begin
hasMirrorPart := true;
break;
end;
end;
// Если первая проверка не пройдена, проверяем наличие последовательности x-y-y-x
if not hasMirrorPart then
begin
for j := 1 to length(phone) - 3 do
begin
if (phone[j] <> phone[j+3]) and (phone[j+1] = phone[j+2]) and
(phone[j] <> phone[j+1]) and (phone[j+1] <> phone[j+2]) and
(phone[j+2] <> phone[j+3]) then
begin
hasMirrorPart := true;
break;
end;
end;
end;
// Если найдена зеркальная часть, увеличиваем счетчик
if hasMirrorPart then
Inc(j);
end;
// Выводим количество номеров с зеркальной частью
writeln(j);
end.
Данный код читает количество номеров N и затем читает N номеров по одному. Для каждого номера он проходит по всем его символам и ищет зеркальную часть. Если зеркальная часть найдена, увеличивается счетчик. По окончании проверки выводится количество номеров с зеркальной частью.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili