Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Alex1992
1 / 1 / 0
Регистрация: 17.02.2011
Сообщений: 6
#1

подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел - C++

17.02.2011, 20:48. Просмотров 865. Ответов 15
Метки нет (Все метки)

Для последовательности чисел подсчитать количество членов в наиболее длинной подпоследовательности из одинаковых чисел. Окончание ввода – число 0.
Помогите пожалуйсто решить эту задачу без применения массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2011, 20:48     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел
Посмотрите здесь:

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

Количество элементов в наиболее длинной подпоследовательности подряд идущих чисел одного знака - C++
ВОТ УСЛОВИЕ ЗАДАЧИ: Вводится последовательность из n целых чисел. Определить количество элементов в наиболее длинной...

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

Подсчёт количества чисел в строке - C++
Подсчитать количество чисел в первой строке из текстового файла: код написала, всё хорошо считывается из текстового файла и выводится на...

Подсчёт количества выпадений чисел в массиве. - C++
Имеется одноразрядный массив а с набором чисел в нем . Порядок чисел в массиве рандомный. То есть приблизительно может быть вот так: ...

Поиск самой длинной неубывающей подпоследовательности - C++
Формулировка задачи: Реализовать на языке C или C++ алгоритм поиска для заданной числовой последовательности самой длинной неубывающей...

Функция нахождения самой длинной неубывающей подпоследовательности - C++
Помогите найти ошибку //Функция находит самую длинную неубывающую подпоследовательность void Search(List *head, List*tail) { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
17.02.2011, 20:52     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #2
Alex1992, я так понял вводятся числа:
222953330, 5522147770, 4444220, 42352340,
ответ : 3 числа с наиболее длительной последовательностью( 333, 777, 4444) ?

если что напиши пример конкретный, на основании которого сделаем программу
Alex1992
1 / 1 / 0
Регистрация: 17.02.2011
Сообщений: 6
18.02.2011, 09:09  [ТС]     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #3
Да ты всё правильно понял, ввод до нуля я написал, а вот как найти наибольшее количество повторяющихся без масива не получается.
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
18.02.2011, 11:41     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #4
C++
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
/////////////////////////////////////////////////////////////////////////////////////////
//Для последовательности чисел подсчитать количество членов в наиболее 
//длинной подпоследовательности из одинаковых чисел. Окончание ввода – число 0.
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите последовательность целых чисел. "
              << std::endl
              << "0 - окончание ввода."
              << std::endl;
 
    int  n          = 0;
    int  n_old      = 0;
    int  count      = 0;
    int  count_max  = 0;
    for(bool  first_num = true; ; first_num = false)
    {        
        int  n_old = n;
        std::cout << "-> ";
        std::cin >> n;
        if(!n)  break;
        if(   !first_num
           && n == n_old)
        {            
            if(++count > count_max)
            {
                count_max = count;
            }
        }
        else
        {
            count = 0;
        }
    }
    std::cout << "Наиболее длинная подпоследовательность из одинаковых чисел имеет длину "
              << count_max + 1
              << "."
              << std::endl;
}
Alex1992
1 / 1 / 0
Регистрация: 17.02.2011
Сообщений: 6
18.02.2011, 13:38  [ТС]     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #5
Прогрмма правильно работает спасибо, но мы пока работает на С более ранних версий, конкретно под дос если есть возможность можно ли переделать? Многие операторы из этой прогрммы мы ещё не проходили, буду пробовать сам, получится отпишусь.

Добавлено через 1 минуту
пример
ввод
1
1
1
2
2
3
0
вывод 3
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
18.02.2011, 14:20     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #6
Alex1992, программа Mr.X написана под С++, а не под С. Однако, кроме ввода-вывода и типа bool она ничем не отличается от эквивалентной программы на С.
Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
18.02.2011, 19:22     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #7
Не по теме:
Nameless One, а какой тип в С вместо bool?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
18.02.2011, 19:39     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #8
Sokolov, long, unsigned, long long, char, int... Чаще всего int... Нет, короче говоря, аналога. Довольствуемся тем, что есть)))
Alex1992
1 / 1 / 0
Регистрация: 17.02.2011
Сообщений: 6
23.02.2011, 21:02  [ТС]     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #9
Большое спасибо за помощь. Переделал программу для C/C++ более ранних версий с применением оператора while. Выкладываю может кому пригодится. Tема закрыта.
C++
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
#include <stdio.h>
#include <conio.h>
void main()
 
{
    int  n;
    int  count = 0;
    int  count_max = 0;
 clrscr();
     printf("Введите последовательность целых чисел. ");
     printf("0 - окончание ввода.\n");
     while(n!=0)
    {
    int  n_old = n;
    printf("-> ");
    scanf("%d", &n);
    if(n < 0)  break;
    if(n == n_old)
    {
        if(++count > count_max)
        {
        count_max = count;
        }
    }
    else
      {
        count = 0;
      }
    }
      printf("Наиболее длинная подпоследовательность из одинаковых чисел имеет длину ");
       printf("%d", ++count_max);
       printf(".");
       printf ("\n Для завершения нажмите любую клавишу.");
       getch();
}
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 16:06     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #10
А как вывести на экран самую длинную последовательность?? Не получается!!


C++
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
#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "Russian");
    const int n = 17;
    int arr[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8};
    cout << "Массив имеет вид: ";
    for(int i = 0; i < n; i++)
        cout << arr[i] << " ";
    int i = 0, count = 0, max = 0, j = 0, res[n];
    while(i < n)
    {
        count = 0;
        int copy_arr = arr[i]; 
        while(arr[i] == copy_arr)
            i++, count++;
        if(count > max)
            max = count;
    }
    cout << "\n\nСамая длинная последовательность состоит из: " << max << "\n\n";
    _getch();
    return 0;
}
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.09.2012, 16:20     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #11
C++
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
#include "stdafx.h"
 #include "iostream"
 #include "conio.h"
 using namespace std;
 
 int _tmain(int argc, _TCHAR* argv[])
 {
 setlocale(0, "Russian");
 const int n = 17;
 int arr[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8};
 cout << "Массив имеет вид: ";
 for(int i = 0; i < n; i++)
 cout << arr[i] << " ";
 int i = 0, count = 0, max = 0;
 while(i < n)
 {
 count = 0;
 int copy_arr = arr[i]; 
 while(i<n && arr[i] == copy_arr)
 {i++, count++;}
 if(count > max)
 max = count;
 }
 cout << "\n\nСамая длинная последовательность состоит из: " << max << "\n\n";
 _getch();
 return 0;
 }
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 18:57     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #12
Это мой код
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.09.2012, 19:02     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #13
Цитата Сообщение от Chainik! Посмотреть сообщение
Это мой код
да это Ваш код с моей поправкой, что бы программа не выходила за пределы массива.
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 19:10     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #14
как вывести эту последовательность на экран?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2012, 19:22     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел
Еще ссылки по теме:

Найти длину самой длинной возрастающей подпоследовательности в массиве - C++
Вводится массив. Найти в нем длину самой длинной возрастающей подпоследовательности.

Нужно найти длину самой длинной подпоследовательности, в которой равное количество 0 и 1. - C++
Здравствуйте. Задана последовательность из 0 и 1. Нужно найти длину самой длинной подпоследовательности, в которой равное количество 0 и...

Составить подпрограмму определения количества одинаковых чисел k в серии - C++
Составить попрограмму определения числа одининаковых целых чисел k в серии длинной больше L в однородном массиве X= (X1, x2, ... ,xn)....

Найти сумму элементов наиболее длинной последовательности, не содержащей 0 - C++
Ребят, помогите, пожалуйста. Нужно написать небольшую программку . Задан одномерный массив X вещественных чисел. Найти сумму элементов...

Определить количество символов в наиболее длинной упорядоченной по убыванию последовательности - C++
Определить количество символов в наиболее длинной упорядоченной по убыванию последовательности символов. Вывести строку, удалив из нее...


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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.09.2012, 19:22     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #15
Цитата Сообщение от Chainik! Посмотреть сообщение
как вывести эту последовательность на экран?
Вам вот это что ли нужно?:
C++
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
#include "stdafx.h"
 #include "iostream"
 #include "conio.h"
 using namespace std;
 
 int _tmain(int argc, _TCHAR* argv[])
 {
 setlocale(0, "Russian");
 const int n = 17;
 int arr[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8}, t;
 cout << "Массив имеет вид: ";
 for(int i = 0; i < n; i++)
 cout << arr[i] << " ";
 int i = 0, count = 0, max = 0;
 while(i < n)
 {
 count = 0;
 int copy_arr = arr[i]; 
 while(i<n && arr[i] == copy_arr)
 {i++, count++;}
 if(count > max)
 {
    max = count; t=copy_arr;
 }
 }
 cout << "\n\nСамая длинная последовательность состоит из: "<<endl;
 for(int i=0; i<max; i++) cout<<t<<" ";
 cout<<endl;
 _getch();
 return 0;
 }
Yandex
Объявления
01.09.2012, 19:22     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru