Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Владимир001
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
1

Выведите число, которое встретилось в последовательности наибольшее число раз

15.03.2018, 21:18. Просмотров 1028. Ответов 16
Метки нет (Все метки)

Задача для С++:
Дано число n - чётное. Далее идут n натуральных чисел, каждое из которых не превосходит 1000. Выведите число, которое встретилось в последовательности наибольшее число раз.
Какой код должен быть?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2018, 21:18
Ответы с готовыми решениями:

Определить число, встречающееся в последовательности наибольшее количество раз (массивы)
Определить,какое число в последовательности встречается наибольшее кол-во раз. Если таких элементов...

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

Найти самое длинное число и опредлить, сколько раз оно встретилось в тексте
подскажите что нужно исправить 6 заданрие 15 вариант Написать програму которая считывает текст с...

Составить наибольшее число, которое делится на 3
народ помогите. Дано натуральное число, содержащее до 50 разрядов. Составить из этого числа...

Дано четырехзначное число.Определить 1)входит ли туда 5 и 6 2) и вывести наибольшее число которое туда входит
Помогите пожалуйста, я начинающий. есть такая задача. Дано четырехзначное число.Определить...

16
nmcf
6534 / 5758 / 2621
Регистрация: 14.04.2014
Сообщений: 24,494
15.03.2018, 21:20 2
Так же, как и с массивами.
0
igorrr37
2038 / 1602 / 800
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
16.03.2018, 07:20 3
по типу сортировки подсчётом
https://ru.wikipedia.org/wiki/%D0%A1...82%D0%BE%D0%BC
0
Владимир001
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
16.03.2018, 07:23  [ТС] 4
Можно показать решение?
0
16.03.2018, 07:23
igorrr37
2038 / 1602 / 800
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
16.03.2018, 07:55 5
Лучший ответ Сообщение было отмечено Владимир001 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <algorithm>
 
 
int main()
{
    int n = 6;
    int num;
    std::vector<int> vec(1000, 0);
    for (int i = 0; i < n; ++i)
    {
        std::cin >> num;
        ++vec.at(num - 1);
    }
    std::cout << std::max_element(vec.cbegin(), vec.cend()) - vec.cbegin() + 1 << std::endl;
}
1
Hitoku
1722 / 1318 / 1404
Регистрация: 28.10.2016
Сообщений: 4,265
Завершенные тесты: 4
16.03.2018, 19:13 6
Как вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <algorithm>
 
int main() {
    int n, max = 0; std::cin >> n;
    std::vector<std::pair<int, int>> p;
    for (int i = 0; i < n; i++) {
        int x = 1001;
        while (x > 1000)
            std::cin >> x;
        if (std::count_if(p.begin(), p.end(), [&x](std::pair<int, int> e) { return e.first == x; }) > 0)
            p[std::distance(p.begin(), std::find_if(p.begin(), p.end(),
                [&x](std::pair<int, int> e) {return e.first == x; }))].second++;
        else p.push_back(std::make_pair(x, 1));
    }
    for (int i = 1; i < p.size(); i++)
        if (p[i].second > p[max].second) max = i;
    std::cout << "Max = " << p[max].first << "; Count = " << p[max].second << "\n";
    system("pause");
    return 0;
}
0
Новичок
Модератор
1552 / 1015 / 475
Регистрация: 17.07.2012
Сообщений: 5,151
Завершенные тесты: 3
16.03.2018, 20:40 7
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main() {
    size_t n;
    std::cin >> n;
    std::vector<int> a(std::istream_iterator<int>(std::cin), {});
    std::sort(a.begin(), a.end());
    int number = a.front();
    size_t max_count = 1;
    size_t count = 1;
    for (size_t i = 1; i < a.size(); i++) {
        if (a[i] == a[i-1]) count++;
        else {
            if (count > max_count)
                max_count = count, number = a[i-1];
            count = 1;
        }
    }
    if (count > max_count) number = a.back();
    std::cout << number;
}
0
Aymurat
123 / 114 / 67
Регистрация: 07.11.2014
Сообщений: 786
Завершенные тесты: 9
16.03.2018, 20:43 8
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
#include <iostream>
using namespace std;
int numbers[1005];
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int tmp;
        cin>>tmp;
        numbers[tmp]++;
    }
    int mx = 0;
    int toPrint = 0;
    for(int i = 1; i <= 1000; i++)
    {
        if (numbers[i] > mx)
        {
            mx = numbers[i];
            toPrint = i;
        }
    }
    cout<<toPrint;
    return 0;
}
0
Новичок
Модератор
1552 / 1015 / 475
Регистрация: 17.07.2012
Сообщений: 5,151
Завершенные тесты: 3
16.03.2018, 20:44 9
Цитата Сообщение от Владимир001 Посмотреть сообщение
каждое из которых не превосходит 1000
Не заметил. Тогда мое решение тупое.
0
Aymurat
123 / 114 / 67
Регистрация: 07.11.2014
Сообщений: 786
Завершенные тесты: 9
16.03.2018, 20:44 10
Цитата Сообщение от Новичок Посмотреть сообщение
Не заметил. Тогда мое решение тупое.
А мое наибыстрейшее
0
Новичок
Модератор
1552 / 1015 / 475
Регистрация: 17.07.2012
Сообщений: 5,151
Завершенные тесты: 3
16.03.2018, 20:45 11
Цитата Сообщение от Aymurat Посмотреть сообщение
for(int i = 0; i < 1000; i++)
Либо тут <= либо numbers[--tmp]++;
0
Aymurat
123 / 114 / 67
Регистрация: 07.11.2014
Сообщений: 786
Завершенные тесты: 9
16.03.2018, 20:45 12
Цитата Сообщение от Новичок Посмотреть сообщение
Либо тут <= либо numbers[--tmp]++;
Я это исправил 5 сек спустя)
0
Владимир001
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
16.03.2018, 22:29  [ТС] 13
Как переписать данный алгоритм за n, а не за n^2
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
#include <iostream>
using namespace std;
 
main(){
    int i,j,n;
    int* a = new int[n];
    for(i=0;i<=n;i++){
        cout<<"a["<<i<<"]:"<<endl;
        cin>>a[i];
    }
 
    int z=a[0],max=1,k;
    for(i=0;i<n;i++){
        k=1;
 
        for (j=i+1;j<=n;j++){
            if(a[i]==a[j]){
                k++;
            }
        }
        if(max<k){
            max=k;
            z=a[i];
        }
    }
    cout<<"Chislo: "<<z<<endl;
    return 0;
}
0
Новичок
Модератор
1552 / 1015 / 475
Регистрация: 17.07.2012
Сообщений: 5,151
Завершенные тесты: 3
16.03.2018, 22:31 14
Использовать unoredered_map.
0
-ДоМоВоЙ-
150 / 149 / 124
Регистрация: 19.01.2016
Сообщений: 578
Записей в блоге: 1
Завершенные тесты: 1
16.03.2018, 22:33 15
Интересно, какое значение имеет n?))) дайте полностью задание)
0
Владимир001
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
16.03.2018, 22:34  [ТС] 16
Цитата Сообщение от Новичок Посмотреть сообщение
unoredered_map.
Как?

Добавлено через 43 секунды
Цитата Сообщение от -ДоМоВоЙ- Посмотреть сообщение
Интересно, какое значение имеет n?))) дайте полностью задание)
Дано число n - чётное. Далее идут n натуральных чисел, каждое из
которых не превосходит 1000. Выведите число, которое встретилось в
последовательности наибольшее число раз.
0
ildwine
16.03.2018, 22:52     Выведите число, которое встретилось в последовательности наибольшее число раз
  #17
 Комментарий модератора 
Владимир001, хватит создавать новые темы для одной и той же задачи. Это противоречит правилам форума. Читайте правила, иначе будут санкции
0
16.03.2018, 22:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2018, 22:52
Привет! Вот еще темы с ответами:

Составить из заданного числа наибольшее число, которое делится на 10
Дано натуральное число, содержащее до 50 разрядов. Составить из этого числа наибольшее число,...

Составить из заданного числа наибольшее число, которое делится на 3.
Дано натуральное число, содержащее до 50 разрядов. Составить из этого числа наибольшее число,...

Наибольшее число, которое можно записать в переменную типа int
Доброго времени суток! Есть функция, вычисляющая значения ряда Фибоначчи: typedef vector&lt; int...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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