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

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

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

C++ подсчёт кол-ва положительных членов
Поиск самой длинной неубывающей подпоследовательности C++
C++ Подсчёт количества выпадений чисел в массиве.
C++ Подсчёт количества чисел в строке
C++ Функция нахождения самой длинной неубывающей подпоследовательности
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 341
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
Эксперт С++
 Аватар для Mr.X
2803 / 1579 / 247
Регистрация: 03.05.2010
Сообщений: 3,667
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
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
18.02.2011, 14:20     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #6
Alex1992, программа Mr.X написана под С++, а не под С. Однако, кроме ввода-вывода и типа bool она ничем не отличается от эквивалентной программы на С.
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
18.02.2011, 19:22     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #7
Не по теме:
Nameless One, а какой тип в С вместо bool?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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++
 Аватар для valeriikozlov
4660 / 2486 / 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++
 Аватар для valeriikozlov
4660 / 2486 / 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
как вывести эту последовательность на экран?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;
 }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2012, 19:26     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел
Еще ссылки по теме:

C++ Составить подпрограмму определения количества одинаковых чисел k в серии
Нужно найти длину самой длинной подпоследовательности, в которой равное количество 0 и 1. C++
C++ Определить количество чисел в наиболее длинной подпоследовательности из нулей

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

Или воспользуйтесь поиском по форуму:
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 19:26     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел #16
Да спасибо большое!!!!!!!!!!!!!!
Yandex
Объявления
01.09.2012, 19:26     подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел
Ответ Создать тему
Опции темы

Текущее время: 18:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru