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

Определить, какие цифры встречаются в числе несколько раз

07.06.2014, 22:34. Показов 4798. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Помогите написать программу на С++
Ввести натуральное число и определить, какие цифры встречаются несколько раз.
Пример:
Введите число >= 0:
2323
Повторяются: 2, 3

Введите число >= 0:
1234
Нет повторов.

Я новичок в С++, и я не знаю как в программе прописать подобное, чтобы она считывала повторы цифр...прошу помощи)
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.06.2014, 22:34
Ответы с готовыми решениями:

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

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

Определить: сколько раз в данном числе встречаются цифры 0 и 5 (нужны комментарии)
Условие задачи звучит так: Дано натуральное число. Определить: сколько раз в нем встречаются цифры 0 и 5 (всего). Помогите разобрать...

6
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
08.06.2014, 00:38
Лучший ответ Сообщение было отмечено как решение

Решение

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
43
44
45
46
#include <iostream>
#include <string>
#include <sstream>
#include <conio.h>
 
int main()
{
    unsigned long long int num;
    std::string str, result;
    std::ostringstream convert;
    bool check = false;
    std::cout << "Type natural number: ";
    std::cin >> num;
    convert << num;
    str = convert.str();
    
    for(int i = 0; i < str.size(); i++)
    {
        int counter = 0;
        for(int j = 0; j < str.size(); j++)
            if(str[i] == str[j])
                counter++;
        if(counter > 1)
        {
            for(int j = 0; j < result.size(); j++)
            {
                if(str[i] == result[j])
                {
                    check = true;
                    break;
                }
            }
            if(!check)
                result += str[i];
            else
                check = false;
        }
    }
 
    (result.size()) ? std::cout << "Yes: " << result << std::endl
                    : std::cout << "No\n";
    
    std::cout << "\nOperation succeeded\n";
    getch();
    return 0;
}
2
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 25
18.11.2015, 22:38
программа мне тоже пригодилась, спасибо большое только добавьте кто-нибудь пожалуйста комменты, что где происходит, буду очень признателен.
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
21.11.2015, 16:14
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
    unsigned long long int num;       //
    std::string str, result;          //
    std::ostringstream convert;       //
    bool check = false;           // check будет использоваться в качестве флага
    std::cout << "Type natural number: "; // 
    std::cin >> num;              // Коротко,
    convert << num;           // здесь происходит конвертация
    str = convert.str();          // int в string
    
    for(int i = 0; i < str.size(); i++) // Проверяем всю строку (число)
    {
        int counter = 0; // Счётчик
        for(int j = 0; j < str.size(); j++) // Каждый элемент строки проверяется на совпадение
            if(str[i] == str[j]) // Если встречается
                counter++;   // счётчик увеличивается
        if(counter > 1) // Если элемент повторился более одгог раза, т. е. наткнулся не только на себя
        {
            for(int j = 0; j < result.size(); j++) // Проверяем результат
            {
                if(str[i] == result[j]) // если подобный элемент уже был имеется в результате
                {
                    check = true; // изменяем значение флага
                    break;    // остагавливаем проверку
                }
            }
            if(!check) // Проверяем флаг, если значение не изменилось, т. е. элемент не встречался
                result += str[i]; // добавляем в результат
            else
                check = false; // иначе меняем значение флага на первоначальное
        }
    // Повторяем все операции до конца основного цикла
    }
 
    // Выводим результат
1
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 25
21.11.2015, 23:51
спасибо большое, а для чего нужен флаг что он делает?
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
22.11.2015, 01:02
Regis, допустим результат в какой-то момент составляют числа 2815 и при проверке очередного
элемента сталкнулись с числом 1. Чтобы исключить его добавление в результат проверяем содержимое результата.
Это происходит в третьем вложенном цикле:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int j = 0; j < result.size(); j++)
{
    if(str[i] == result[j]) // Если подобный элемент уже есть
    {
        check = true; // меняем значение check
        break;
    }
}
if(!check) // если значение check не было изменено
    result += str[i]; // элемент добавляется в результат
else // иначе если значение check было изменено, т. е. подобный элемент был (в нашем случае 1 столкнулась с 1)
    check = false; // меняем check на первоначальное значение для последующего использования в алгоритме
1
8 / 6 / 6
Регистрация: 15.07.2015
Сообщений: 38
22.11.2015, 01:33
Я бы делал через map:

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
#include <iostream>
#include <map>
#include <string>
 
using namespace std;
 
int main(){
 
    map <char, int> Map;
 
    string Num;
 
    getline(cin, Num);
 
    for (int i = 0; i < Num.length(); i++) Map[Num[i]]++;
 
    cout << "Povtor: ";
 
    for (int i = 0; i < 10; i++){
        char c = i + 48;
        if (Map[c]>1) cout << c << " ";
    }
 
    cout << endl;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2015, 01:33
Помогаю со студенческими работами здесь

Посимвольная обработка строк: определить, какие четные цифры встречаются наименьшее число раз
Дана строка. Определить какие четные цифры встречаются наименьшее число раз Спасибо

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

Ввести натуральное число и определить, какие цифры встречаются несколько раз
Напишите программу. Ввести натуральное число и определить, какие цифры встречаются несколько раз. Пример: Введите число &gt;= 0: 2323...

Ввести натуральное число и определить какие цифры встречаются несколько раз.
Ввести натуральное число и определить какие цифры встречаются несколько раз. Пример: Введите число &gt;=0 2323 Повторяются 2 и 3 ...

Ввести натуральное число и определить, какие цифры встречаются несколько раз.
1)Ввести натуральное число и определить, какие цифры встречаются несколько раз. Пример: Введите число &gt;= 0: Введите...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru