0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 21
1

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

17.04.2012, 18:32. Показов 4338. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста написать программу. Нужно чтобы при вводе числа с несколькими наибольшими цифрами, выводило все эти цифры, а не только одну из них((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2012, 18:32
Ответы с готовыми решениями:

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

Определить, сколько раз в заданном натуральном числе встречаются цифры 0 и 5
Дано натуральное число. Определить: сколько раз в нем встречаются цифры 0 и 5.

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

Изменить код так, чтобы в результате выполнения программы выводились цифры, которые чаще всего встречаются
Изменить код так, чтобы в результате выполнения программы выводились цифры, которые чаще всего...

11
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
17.04.2012, 18:39 2
Можно поточнее задачу узнать?
0
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 21
17.04.2012, 20:45  [ТС] 3
Нужна программа чтобы выводило цифры наиболее чаще встречающиеся в заданном числе.
Допустим в числе 123125 он должен вывести и 1 и 2)

Добавлено через 1 час 56 минут
НубаС++, Нужна программа чтобы выводило цифры наиболее чаще встречающиеся в заданном числе
0
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 34
17.04.2012, 22:35 4
Jenot, Какие функции вы используете для обработки числа?
0
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 21
17.04.2012, 22:41  [ТС] 5
Сапожок,
- У меня получился вот такой код, только он вычисляет сколько раз встречается каждая цифра
C++ (Qt)
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 <math.h>
#include <conio.h>
 
using namespace std;
void main()
{setlocale(LC_CTYPE, "rus");
    unsigned long int n;
short j=0,i,k;
short c[10],a[10];
int c[j]=0;int m=0;
cout<<"n="; cin>>n;
k=0;
do {a[k]=n%10;
n/=10;
k++;}
while (n!=0);
for (j=0; j<10; j++)
c[j]=0;
for (i=0;i<k;i++)
{j=a[i];
c[j]++;
if (c[j]>m) m=c[j];
cout<<"цифра числа"<<j<<"->"<<c[j]<<endl;}
getch();
}
А еще я нашла вот такой код, он чуть не понятен, но не совсем точно работает
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
void main()
{
int array[10],i;
for(i=0;i<10;i++) array[i]=0;//счетчики встречаемости цифр
 int number=0;
cin>>number;
while(number)
{
   array[number%10] +=1;
   number = (number-number%10)/10;
}
int index=0;
for(int i=0;i<10;i++) index=(array[i]>array[index])?i:index;
cout<<"\n result = "<<index<<endl; 
return 1;
getch();
}
Буду очень признательна, если кто нить сможет добить эту программу
0
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 34
17.04.2012, 23:22 6
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
#include <iostream>
#include <string>
using namespace std;
 
main(){
       int n;
       int k=0;
       int a[100] = {};
       cin >> n;
       do {a[k]=n%10;
       n/=10;
       k++;}
       while (n!=0);
       
       int ex[10] = {0,0,0,0,0,0,0,0,0,0};
       for (int i = 0; i <= k; i++){
           if (a[i] == 0) ex[0]++;
           if (a[i] == 1) ex[1]++;
           if (a[i] == 2) ex[2]++;
           if (a[i] == 3) ex[3]++;
           if (a[i] == 4) ex[4]++;
           if (a[i] == 5) ex[5]++;
           if (a[i] == 6) ex[6]++;
           if (a[i] == 7) ex[7]++;
           if (a[i] == 8) ex[8]++;
           if (a[i] == 9) ex[9]++;
           }
       ex[0]--;   
       for (int i = 0; i < 10; i++){
           cout << "число " << i << " встречается " << ex[i] << " раз.\n";
           }
       cin >> n;
       return 0;
       }
Я не знаю, почему надо вычитать из ех0 единицу, но это, видимо, для чего-то надо, потому что только так программа работает правильно (не знаю, правильно ли). Думаю, что правильно.

Добавлено через 1 минуту
Кстати, отличная экономия памяти с помощью всяких short'ов. Откуда это?
И еще. Используйте табуляцию.

Добавлено через 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
29
30
31
32
33
#include <iostream>
#include <string>
using namespace std;
 
main(){
       int n;
       int k=0;
       int a[100];
       cin >> n;
       do {a[k]=n%10;
       n/=10;
       k++;}
       while (n!=0);
       
       int ex[10] = {0,0,0,0,0,0,0,0,0,0};
       for (int i = 0; i <= k; i++){
           if (a[i] == 0) ex[0]++;
           if (a[i] == 1) ex[1]++;
           if (a[i] == 2) ex[2]++;
           if (a[i] == 3) ex[3]++;
           if (a[i] == 4) ex[4]++;
           if (a[i] == 5) ex[5]++;
           if (a[i] == 6) ex[6]++;
           if (a[i] == 7) ex[7]++;
           if (a[i] == 8) ex[8]++;
           if (a[i] == 9) ex[9]++;
           } 
       for (int i = 0; i < 10; i++){
           cout << "×èñëî " << i << " âñòðå÷àåòñÿ " << ex[i] << " ðàç.\n";
           }
       cin >> n;
       return 0;
       }
Понял, в чем дело. Я просто вначале массив обнулил зачем-то. Теперь все хорошо.
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.04.2012, 07:17 7


Цитата Сообщение от Сапожок Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
if (a[i] == 0) ex[0]++;
if (a[i] == 1) ex[1]++;
if (a[i] == 2) ex[2]++;
if (a[i] == 3) ex[3]++;
if (a[i] == 4) ex[4]++;
if (a[i] == 5) ex[5]++;
if (a[i] == 6) ex[6]++;
if (a[i] == 7) ex[7]++;
if (a[i] == 8) ex[8]++;
if (a[i] == 9) ex[9]++;
C++
1
++ex[ a[i] ];
Цитата Сообщение от Сапожок Посмотреть сообщение
C++
1
int ex[10] = {0,0,0,0,0,0,0,0,0,0};
C++
1
int ex[10] = {0};
0
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 34
18.04.2012, 14:15 8
diagon, Я знаю про второй случай. Просто редко его использую, побоялся экспериментировать. Там еще можно доработать с помощью оператора break;.
А первый случай я не понял. Как это так?

Добавлено через 57 секунд
А почему вам не нравится мой метод дровосека? По-моему, очень красиво смотрится. =)
0
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 21
18.04.2012, 20:19  [ТС] 9
Сапожок, все бы не плохо, только не надо чтобы все цифры выводило. Надо чтобы выводило Только часто Встречающиеся.
0
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 34
18.04.2012, 21:04 10
Насколько часто?
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
18.04.2012, 21:11 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
30
31
32
33
34
35
36
#include <iostream>
#include <cstdlib>
#include <cstddef>
 
int main()
{
    //------------
    int value;
    std::cout << "value: ";
    std::cin >> value;
 
    if(!std::cin) return 1;
    value = std::abs(value);
 
    //------------
    const std::size_t n = 10;
    int digits[n] = {0};
 
    do
    {
        ++digits[value % 10];
        value /= 10;
    }
    while(value != 0);
 
    //------------
    int imax = 0;
    for(std::size_t i = 1; i < n; ++i)
        if(digits[i] > digits[imax])
            imax = i;
 
    std::cout << imax;
    for(std::size_t i = imax + 1; i < n; ++i)
        if(digits[i] == digits[imax])
            std::cout << ", " << i ;
}
1
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 21
18.04.2012, 21:47  [ТС] 12
Сапожок,
Пример, допусти вводим число 134684531
Должно вывести 1,3,4

Так ясно?

Добавлено через 7 минут
rangerx, Вы гениальны! Я в восторге!!!!!!!!!!!! Огромнейшеее спасибо!!!!!!!!!!!

Добавлено через 9 минут
rangerx, только мне непонятен фрагмент кода
for(size_t i = 1; i < n; ++i)
объясните плиз.
0
18.04.2012, 21:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2012, 21:47
Помогаю со студенческими работами здесь

Суть - найти буквы которые встречаются чаще всего до точки
вот мой код uses crt; var max,k:integer; f:char; a: array of integer; s:string;...

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

В заданном натуральном числе найти количество цифр, которые больше 3, но меньше 8
В заданном натуральном числе найти количество цифр, которые больше 3, но меньше 8. Реализовать...

Найти четыре цифровых символа, которые чаще всего встречаются в текстовом файле
Задача: Написать программу языке СИ, которая находит четыре цифровых символы, которые чаще всего...


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

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

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