4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
1

Найти наиболее часто встречающееся число

07.09.2018, 09:22. Показов 10109. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
на вход подаются числа от a до b допустим 1 и 10 ответ будет 1(0 ≤ a ≤ b ≤ 10^5)

Есть идеи как это найти? думаю так сначала найти все числа которые будут и записать их в массив.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <math.h>
 
using namespace std;
 
int main()
{
    int a,b;
    cin>>a;
    cin>>b;
for(int i=0;i<b;i++){
        mas[i]=a;
        a=a+1;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2018, 09:22
Ответы с готовыми решениями:

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

Работа с одномерным массивом (найти наиболее часто встречающееся число)
Дан одномерный массив A, найти наиболее часто встречающееся число. Если таких чисел несколько, то...

Найти наиболее часто встречающееся число без использования массивов
Дана задача: В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся...

Задан массив из k чисел. Найти число, наиболее часто встречающееся в этом массиве
Задан массив из k чисел. Найти число, наиболее часто встречающееся в этом массиве

10
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
07.09.2018, 09:27 2
Научись формулировать свои мысли, из того, что ты написал ничего не понятно. В загловке темы одно, в твоем посте совсем другое, в коде третье. Что надо то?
0
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
07.09.2018, 09:29  [ТС] 3
имел в виду Найти Наиболее часто встречающиеся цифру**.если их несколько то вывести в порядке возростания
пример 10 40 ответ 1 2 3
входят числа от 10 до 40
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,311
07.09.2018, 09:40 4
Лучший ответ Сообщение было отмечено Александрррррпд как решение

Решение

Цитата Сообщение от Александрррррпд Посмотреть сообщение
допустим 1 и 10
Заводишь массив на (b - a) элементов, обнуляешь и при вводе числа x инкрементируешь элемент массива по адресу x - a.
Потом находишь индекс максимума i, число a + i наиболее часто встречается.
1
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
07.09.2018, 09:46 5
Цитата Сообщение от Александрррррпд Посмотреть сообщение
имел в виду Найти Наиболее часто встречающиеся цифру**.если их несколько то вывести в порядке возростания
пример 10 40 ответ 1 2 3
входят числа от 10 до 40
Перечитай то, что ты написал, просто пе-ре-чи-тай. Что это?
4
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
07.09.2018, 10:09  [ТС] 6
Цитата Сообщение от Kastaneda Посмотреть сообщение
Перечитай то, что ты написал, просто пе-ре-чи-тай. Что это?
а что не понятно?
на вход подаются числа от 10 до 40.нам нужно найти цифру которая чаще всего встречается.если их несколько то вывести их в порядке возрастания ответ будет 1 2 3.

Цитата Сообщение от woldemas Посмотреть сообщение
инкрементируешь элемент массива по адресу x - a.
Потом находишь индекс максимума i, число a + i наиболее часто встречается.
я их обнулил а дальше не совсем понял логику

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <math.h>
 
using namespace std;
 
int main()
{
    int a,b,c;
    cin>>a;
    cin>>b;
    int mas[b-a]={0};
    
 
 
}
Добавлено через 13 минут
Удалите тему
0
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
07.09.2018, 10:11  [ТС] 7
на вход подаются числа от 10 до 40.нам нужно найти цифру которая чаще всего встречается.если их несколько то вывести их в порядке возрастания ответ будет 1 2 3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <math.h>
 
using namespace std;
 
int main()
{
    int a,b,c;
    cin>>a;
    cin>>b;
    int mas[b-a]={0};
 
 
}
тесты
1 10 ответ 1
10 30 ответ 1 2
10 40 ответ 1 2 3
0
20 / 16 / 8
Регистрация: 07.03.2016
Сообщений: 143
07.09.2018, 10:33 8
Лучший ответ Сообщение было отмечено Александрррррпд как решение

Решение

Кажется понял что он хочет. Числа надо разбивать на единицы и десятки, а там уже считать количество встречающихся цифр. Очень странно было сформулировано если честно.
Разбивай числа остатком от деления и просто делением на 10. Может еще какая кастомная функция есть для этого. Потом считай тератором количество каждой цифры
1
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
07.09.2018, 10:40 9
Не, я понял, на входе границы диапазона, например 10 - 40, значит нам надо работать с таким набором данных [10, 11, 12, ... 39, 40]. Все эти числа нужно разбить на цифры и вывести в порядке возрастания наиболее часто встречающиеся.

Час понадобился, чтобы понять задачу, писец конечно.
0
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
08.09.2018, 00:27  [ТС] 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
28
29
30
31
#include <iostream>
 
#include <math.h>
 
using namespace std;
 
int main()
 
{ int a,b;
int k[1000]={0}; // завожу массив на 1000 
 
cin>>a>>b; // считываю числа
 
 
k[0]+= a==0; 
 
for(int i=a;i<=b;i++) { //i =начальному числу и иду до конца
 
int c=i; // беру число
 
while(c){ // пока это числа не равно 0
    k[i]=c % 10; // беру остаток
    c/=10;  // сокращаю число
 
 
cout<<k[i];// тут смотрю что нормально рабилось
 
}
 
}
}
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
08.09.2018, 11:52 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
28
29
#include <bits/stdc++.h>
using namespace std;
int digits[10];
int main () {
    int a,b;
    cin>>a>>b;
    for(int i = a; i <= b; i++) {
        int x = i;
            if(!x) digits[x]++; else {
            while(x > 0) {
                digits[x % 10]++;
                x/=10;
            }
        }
    }
    pair<int, int> mx = make_pair(-1,0);
    for(int i = 0; i < 10; i++) {
        if (digits[i] > mx.second) {
            mx.first = i;
            mx.second = digits[i];
        }
    }
    for(int i = 0; i < 10; i++) {
        if (digits[i] == mx.second) {
            cout<<i<<" ";
        }
    }
    return 0;
}
1
08.09.2018, 11:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2018, 11:52
Помогаю со студенческими работами здесь

В массиве целых чисел найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наим
Вообщем не понял сути самого задания. Разъясните иль если сможете помогите сделать...

Создать список из случайных целых чисел в диапазоне от 1 до 10, определить наиболее часто встречающееся число и удалить
Создать список из случайных целых чисел в диапазоне от 1 до 10, определить наиболее часто...

Найти значение наиболее часто встречающееся в целочисленном массиве размера N
Люди добрые ПОМОГИТЕ ПОЖАЛУЙСТА решить задачу - ЗАВТРА СДАВАТЬ !!!! Условие: Задан...

Наиболее часто встречающееся слово
Как можно это реализовать Исходный текст содержит строку, слова в которой разделены пробелами и...

Вывести слово, наиболее часто встречающееся в строке
Дана строка, состоящая из слов, разделенных пробелами. Вывести слово, наиболее часто встречающееся...

Вывести слово, наиболее часто встречающееся в строке
Дальше не знаю как решать, помогите пожалуйста. #include &quot;pch.h&quot; #include &lt;iostream&gt; #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru