Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 2
Регистрация: 05.01.2016
Сообщений: 68

Найти наиболее длинную последовательность одинаковых чисел

05.01.2016, 21:13. Показов 2670. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вводятся 10 чисел. Найти наиболее длинную
последовательность одинаковых чисел. Например, набрано "2 3 2 4 4 8 2 2 2 3" –
здесь максимальная последовательность это "2 2 2". Надо вывести на экран:
"Число 2 подряд 3 раза"

ПОМОГИТЕ!!!!!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2016, 21:13
Ответы с готовыми решениями:

В последовательности найти наиболее длинную последовательность подряд идущих нулей
Здравствуй дорогие друзья. Помогите решить задачку, долго думал, но не как не могу придумать...

Найти в массиве наиболее длинную последовательность подряд идущих элементов m
в массиве из n элементов найти наиболее длинную последовательность подряд идущих элементов m в...

Задана последовательность из N чисел. Найти самую длинную последовательность, обладающую данным свойством
Прошу помощи мастеров решить ОДНУ задачкУ: 1) Задана последовательность из N чисел. Найти самую...

8
39 / 39 / 49
Регистрация: 18.12.2015
Сообщений: 127
05.01.2016, 22:13
Лучший ответ Сообщение было отмечено KiRiLl1452 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program z1632377;                          //Если числа вещественные, то
 const n=10;
 var i,y,z,k,kmax:integer;                 //var i,k,kmax:integer; y,z:real;
     x:array [1..n] of integer;            //x:array [1..n] of real;
begin
 cls;
 writeln('Введит ',n,' чисел:');
 for  i:=1 to n do
  read(x[i]);
 k:=0; kmax:=0;
 for  i:=1 to n-1 do
  if x[i]=x[i+1]
   then begin k:=k+1; y:=x[i] end
   else if k>kmax
         then begin kmax:=k; k:=0; z:=y end;
 if kmax=0
  then writeln('Нужной последовательности нет')
  else writeln('Число ',z,' подряд ',kmax+1,' раз')
end.
1
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
06.01.2016, 00:32
schoolteacher, не корректно. ты не учитываешь числа в конце последовательности.
введи, например,
1 2 3 4 1 1 5 5 5 5
поймёшь, что я имею в виду
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
06.01.2016, 09:41
Да и переменные лишние...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program P12;
 const n=10;
 var i,k,z,kmax:integer;
     x:array [1..n] of integer;
begin
 cls;
 writeln('Введите ',n,' чисел:');
 for  i:=1 to n do
  read(x[i]);
 k:=0; kmax:=0;
 for  i:=1 to n-1 do
  if x[i]=x[i+1]
   then Begin
       k:=k+1;
       z:=x[i];
   end
   else if k>kmax then begin
           kmax:=k;
           k:=0;
        end;
 if k>0 then kmax:=k;
 if kmax=0 then
    writeln('Нужной последовательности нет')
 else
    writeln('Число ',z,' подряд ',kmax+1,' раз')
end.
1
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
06.01.2016, 13:13
Catstail, я не хочу Вас расстраивать, но у Вас решение тоже не верное...
попробуйте на числах: 1 2 3 4 5 5 5 5 7 7
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
06.01.2016, 13:19
Sergio Leone, о... Разумеется:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program P12;
 const n=10;
 var i,k,z,kmax:integer;
     x:array [1..n] of integer;
begin
 cls;
 writeln('Введите ',n,' чисел:');
 for  i:=1 to n do
  read(x[i]);
 k:=0; kmax:=0;
 for  i:=1 to n-1 do
  if x[i]=x[i+1]
   then Begin
       k:=k+1;
       z:=x[i];
   end
   else if k>kmax then begin
           kmax:=k;
           k:=0;
        end;
 if k>kmax then kmax:=k;
 if kmax=0 then
    writeln('Нужной последовательности нет')
 else
    writeln('Число ',z,' подряд ',kmax+1,' раз')
end.
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
06.01.2016, 13:30
Лучший ответ Сообщение было отмечено KiRiLl1452 как решение

Решение

опять с маленькой ошибкой . проверьте на последовательности: 1 2 3 4 5 5 5 5 7 7


Catstail, если разрешите, я позволю себе так модифицировать ваше решение:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
program P12;
 const n=10;
 var i,k,z,kmax:integer;
     x:array [1..n] of integer;
begin
 cls;
 writeln('Введите ',n,' чисел:');
 for  i:=1 to n do
  read(x[i]);
 k:=0; kmax:=0;
 for  i:=1 to n-1 do
  if (x[i]=x[i+1])
   then k:=k+1
   else begin
       if k>kmax then begin
           z:=x[i];
           kmax:=k;
       end;
       k:=0;
       end;
 
 if k>kmax then begin
      z:=x[n];  kmax:=k;
   end;
 
 if kmax=0 then
    writeln('Нужной последовательности нет')
 else
    writeln('Число ',z,' подряд ',kmax+1,' раз')
end.
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
06.01.2016, 14:17
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Sergio Leone, ну да, я это и имел в виду.

Добавлено через 30 минут
А вот естественное обобщение задачи, которое печатает не первую последовательность максимальной длины, а все таковые, если их несколько:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
program P12;
 const n=10;
 var i,k,z,kmax,p:integer;
     x:array [1..n] of integer;
     q:array [1..n] of integer;
     r:array [1..n] of integer;
begin
 cls;
 writeln('Введите ',n,' чисел:');
 for  i:=1 to n do
  read(x[i]);
 
 k:=0;
 kmax:=0;
 p:=0;
 
 for  i:=1 to n-1 do
  if x[i]=x[i+1]
   then Begin
       k:=k+1;
       z:=x[i];
   end
   else Begin
      if k=kmax then begin
         p:=p+1;
         q[p]:=k+1;
         r[p]:=z;
         k:=0;
      end;
      if k>kmax then begin
         kmax:=k;
         p:=1;
         q[p]:=k+1;
         r[p]:=z;
         k:=0;
      end;
 end;
 
 if k = kmax then begin
    p:=p+1;
    q[p]:=k+1;
    r[p]:=z;
 end;
 
 if k>kmax then begin
    kmax:=k;
    p:=1;
    q[p]:=k+1;
    r[p]:=z;
 end;
 
 if kmax=0 then
    writeln('Нужной последовательности нет')
 else Begin
    writeln('Наиболее длинные отрезки одинаковых:');
    for i:=1 to p do writeln(r[i],' к-во: ',q[i]);
 end;
 
end.
1
39 / 39 / 49
Регистрация: 18.12.2015
Сообщений: 127
09.01.2016, 09:29
Лучший ответ Сообщение было отмечено Sergio Leone как решение

Решение

Как вариант – программа P12 от Sergio Leone без массива, переменных на 1 больше, но объём используемой памяти меньше.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program z1632377_6;
 const n=10;
 var i,k,z,kmax,xp,xs:integer;
begin
 cls;
 k:=0; kmax:=0;
 writeln('Введите ',n,' чисел:');
 read(xp);
 for  i:=2 to n do
  begin
   read(xs);
   if xp=xs
    then k:=k+1
    else begin
      if k>kmax
       then begin z:=xp; kmax:=k end;
      k:=0;
     end;
   xp:=xs
  end;
 if k>kmax
  then begin z:=xs; kmax:=k end;
 if kmax=0
  then writeln('Нужной последовательности нет')
  else writeln('Число ',z,' подряд ',kmax+1,' раз/а')
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2016, 09:29
Помогаю со студенческими работами здесь

Найти в строке S самую длинную последовательность подряд идущих одинаковых символов
Напишите программу, которая считывает с клавиатуры строку S и находит в строке S самую длинную...

Считать цепочку чисел и напечатать наиболее длинную, монотонно возрастающую их подпоследовательность
Добрый день!Помогите решить задачку. Составить программу: программа, которая считывает...

Найти наиболее длинную группу нулевых элементов массива, идущих по порядку
в одномерном масиве А состоящим из N элементов.Найти наиболее длиную группу нулевых элементов...

Определить количество чисел в наиболее длинной подпоследовательности из подряд идущих одинаковых чисел
Дана непустая последовательность не нулевых целых чисел, за которой следует 0. Определить...

Определить номер столбца, который содержит самую длинную серию одинаковых чисел
1) Задана целочисленная матрица A(N,M). Определить номер столбца, который содержит самую длинную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru