Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11

Найти цифры, которые чаще всего встречаются в заданном натуральном числе N

20.11.2016, 22:05. Показов 2622. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Долго сижу над задачей, никак не допру, подскажите пожалуйста как реализовать данную задачу. "Найти цифры, которые чаще всего встречаются в заданном натуральном числе N", подобная тема уже есть, но не нашёл в ней ответа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main(){
    
    long int k,i,j,n; 
    cin >> n;
    
    j = 0;
    k = 0;
 
    while( n != 0 ){ 
           // все действия тут
    }
   
  
   cout << i;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2016, 22:05
Ответы с готовыми решениями:

Найти цифры, которые чаще всего встречаются в заданном натуральном числе N.
Помогите пожалуйста написать программу. Нужно чтобы при вводе числа с несколькими наибольшими цифрами, выводило все эти цифры, а не только...

Проверить, что в натуральном числе встречаются цифры А и В.
Помогите пожалуйста решить задачу, буду весьма признателен. Проверить, что в натуральном числе встречаются цифры А и В.

Определить, есть ли в заданном натуральном числе указанные цифры
В школе задали, кто знает как решить ? Спасибо. Дано натуральное число. Определить, есть ли в нем цифры а и b.

23
 Аватар для lawr
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
21.11.2016, 14:11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
int main(){
        setlocale(0, "rus");
    long n;
    int max=0, Num[10];
    for (int i=0; i<10; i++)
        Num[i]=0;
        std::cin>>n;
    do{
        Num[n%10]++;
        n/=10;
    }
    while (n!=0);
    for (int i=1; i<10; i++)
        if (Num[i]>Num[max])
            max=i;
    std::cout<<"наиболее часто встречающаяся в веденном числе цифра= "<<max<<;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.11.2016, 14:23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    const int N = 1234523, numDig = 10;
    int digits[numDig] = {}, max;
    for (int x = N; x; x /= 10)
        ++digits[x%10];
    max = digits[0];
    for (int i=1; i < numDig; i++)
        if (max < digits[i])
            max = digits[i];
    for (int i=0; i < numDig; i++)
        if (digits[i] == max)
            std::cout << i << " ";
}
Добавлено через 15 секунд
lawr, в задании требуют цифры
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.11.2016, 14:42
Вместо строк 7-12 можно
C++
1
2
3
4
5
max = 0;
for (int x = N; x; x /= 10) {
    int d = ++digits[x%10];
    if (max < d) max = d;
}
2
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 14:49  [ТС]
Здесь не в массиве! Просто из числа, и не одну цифру, а к примеру 32441, должно вывести 4, 4
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.11.2016, 14:53
Цитата Сообщение от erik1111 Посмотреть сообщение
32441, должно вывести 4, 4
А если так: 332441 ?
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 18:30  [ТС]
Тогда, что-то типа; 3, 4 или 3, 3, 4, 4
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.11.2016, 19:11
Цитата Сообщение от erik1111 Посмотреть сообщение
что-то типа
А вы не хотели бы определиться с "типом"? Типа "3, 4" вам уже было предложено в посте 3 (запятую уж сами поставите, или как?) Типа "3, 3, 4, 4" - тоже не бином Ньютона.
И вопрос. Вы настолько беспомощны в языке, что не можете модифицировать предложенный вам простенький алгоритм под свои конкретные нужды? Или умеете только вопросы задавать (не очень-то умея их формулировать)? Имхо, так у вас ничего не получится. Надо и своими извилинами слегка шевелить.
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 19:27  [ТС]
Дело в том, что я не силён в c++, на мой взгляд предложенные варианты выше абсолютно не подходят под условие задачи, прочтите внимательно условие задачи, вопрос может быть не конкретно сформулировал в первый раз, но думаю теперь всё понятно. Если он такой простенький может быть Вы предложите свой вариант решения? Или вам проще писать вопросы в абзац и говорить, что я не умею формулировать вопрос? или не могу шевелить своими извилинами? Я пробовал шевелить, иначе не создавал бы тему на форуме.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.11.2016, 19:45
Прошу прощения у других участников обсуждения. Но мой опыт показывает, что иногда небольшая эмоциональная встряска помогает начать думать своим умом. Но, увы, не всегда...
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 21:32  [ТС]
Вы не подскажите как это сделать?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.11.2016, 21:48
Цитата Сообщение от erik1111 Посмотреть сообщение
Вы не подскажите как это сделать?
Все давно уже сделано. В посте 3. Слегка (не существенно) модифицировано в посте 4. Можешь на это внимания не обращать.
Но если ты не понимаешь, что все тебе уже сделали, скажи, как можно тебе помочь?!
Может быть тебя что-то не устраивает? Вполне возможно, бывает. Может быть, тебя неправильно поняли, или ты изложил свою задачу неадекватно. Так, скажи же, черт побери, какого тебе рожна надо! И так, чтоб это было понятно, тем, не совсем уж глупым людям, которые тут возятся с тобой.
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 22:04  [ТС]
Я же написал, что не в массиве нужно находить, а просто из просто натурального числа! Что не понятого?
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
21.11.2016, 22:31
Цитата Сообщение от erik1111 Посмотреть сообщение
Тогда, что-то типа; 3, 4
erik1111, писал немного с затуманенной головой, поэтому если есть ошибки то сорян
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <functional>
#include <map>
using namespace std;
 
int main()
{
    string str;
    cin >> str;
 
    map<const char, size_t> chMap;
    for (const auto& i : str)
        ++chMap[i];
 
    map<const size_t, string, greater<const size_t>> cntMap;
    for (const auto& i : chMap)
        cntMap[i.second] += i.first + string(" ");
 
    cout << cntMap.cbegin() -> second << endl;
 
    system("pause");
}
Добавлено через 9 минут
Цитата Сообщение от erik1111 Посмотреть сообщение
к примеру 32441, должно вывести 4, 4
в моем коде подкрути строчку
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
C++
1
cout << cntMap.cbegin() -> second << endl;
на
C++
1
2
3
4
5
6
7
8
9
for
(
    auto count(cntMap.cbegin() -> first);
    count;
    --count
)
    cout << cntMap.cbegin() -> second;
 
cout << endl;
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 22:33  [ТС]
Спасибо, за Ваш ответ, но скажите можно ли реализовать без использование Map и других библиотек? только с iostream?
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
21.11.2016, 22:35
erik1111, конечно можно)) но скучно))
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 22:37  [ТС]
Я, конечно, надоел вам уже, но можете показать вариант решение только с iostream? без Map, и массива, именно такой вариант мне и нужен. Заранее спасибо.
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
21.11.2016, 23:09
Цитата Сообщение от erik1111 Посмотреть сообщение
без массива,
Твоя задача не решается без введения небольшого фиксированного размера массива. На 10 элементов. По количеству возможных цифр.
Нет, конечно, можно все. Но это будет такая уродина, что ни один уважающий себя программист такой код писать не возьмется. И с твоей подготовкой тебе вряд ли удастся такой код понять.
2
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 11
21.11.2016, 23:17  [ТС]
Я пойму, с массивом я могу и сам сделать, заранее спасибо.
0
 Аватар для lawr
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
22.11.2016, 16:30
Лучший ответ Сообщение было отмечено erik1111 как решение

Решение

erik1111, вот тебе без массива:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
int main(){
    long n;
    int num, q, max_num, max_num_q=0;
    std::cin>>n;
    do{
        num=n%10;
        q=0;
        for (long temp=n; temp>0; temp/=10)
            if (temp%10==num)
                q++;
        if (q>max_num_q)
            max_num_q=q, max_num=num;
        n/=10;
    }
    while (n>0);
    std::cout<<max_num;
        
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2016, 16:30
Помогаю со студенческими работами здесь

Структуры: определить список 3 диагнозов, которые чаще всего встречаются у пациентов
У меня есть структура. struct Patients { char NAME; char SURNAME; char GENDER; char ADRESS; char DIAGNOZ; int DATA; };

Найти количество цифр в заданном натуральном числе
найти сколько цифр в данном натуральном числе n(n&lt;=100) c++ Очень надо.

Вычислить количество цифр в заданном натуральном числе
Вычисление количества цифр в заданном натуральном числе. Максимально вычисляет 10, что мне делать? #include &lt;iostream&gt; ...

Определить количество цифр 3 в заданном натуральном числе
Дано натуральное число, определить а) количество цифр 3 в нем;

Подсчитать количество цифр в заданном натуральном числе.
Подсчитать количество цифр в заданном натуральном числе. (как можно понятнее и проще, если можно)


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru