Форум программистов, компьютерный форум CyberForum.ru

Проверить, есть ли в записи числа три одинаковые цифры - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Xab3r
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 34
21.06.2012, 12:52     Проверить, есть ли в записи числа три одинаковые цифры #1
Дано натуральное число N. Проверить, есть ли в записи числа три одинаковые цифры.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2012, 12:52     Проверить, есть ли в записи числа три одинаковые цифры
Посмотрите здесь:

Проверить есть ли в массиве одинаковые числа C++
Определить есть ли среди цифр числа одинаковые цифры C++
C++ дано натуральное число n. Проверить есть ли в записи числа три одинаковые цифры
Проверить, есть ли в трехразрядном числе одинаковые цифры C++
Есть в записи числа m цифры, которые совпадают с цифрами в записи числа n C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
21.06.2012, 13:21     Проверить, есть ли в записи числа три одинаковые цифры #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <algorithm>
#include <string>
#include <iostream>
 
bool has3equalchar(std::string str)
{
    for (auto i = str.begin(); i!= str.end(); ++i)
        if (std::count(i, str.end(), *i) == 3) return true;
    return false;
}  
 
int main()
{
    const std::string N = "123211";
    std::cout<< (has3equalchar(N) ? "Yes" : "No");
    return 0;
}
http://liveworkspace.org/code/60c693...b659d6fb8e7121
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
21.06.2012, 13:24     Проверить, есть ли в записи числа три одинаковые цифры #3
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>
#include <cstdlib>
 
bool contains(int x)
{
    int digits[10] = {0};
 
    for(x = std::abs(x); x != 0; x/= 10)
    {        
        int rem = x % 10;        
        if(++digits[rem] == 3)
            return true;
    }
 
    return false;
}
 
int main()
{
    int value;
    std::cout << "value: ";
    std::cin >> value;
 
    if(!std::cin)
        return 1;
        
    std::cout << (contains(value) ? "yes" : "no") << std::endl;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 13:44     Проверить, есть ли в записи числа три одинаковые цифры #4
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
#include <iostream>
#include <string>
#include <unordered_map>
#include <cstdlib>
#include <utility>
#include <algorithm>
 
int main()
{
    const auto num = 0x736f6f6e;
    std::cout << num << std::endl;
    const auto str = std::to_string(num);
    std::unordered_map<char, std::size_t> m;
    for(const auto& elem: str)
        ++m[elem];
    const auto it = std::find_if
                    (
                        m.begin(),
                        m.end(),
                        [] (const std::pair<const char, std::size_t>& p)
                        {
                            return p.second == 3;
                        }
                    );
    std::cout << ((it == m.end()) ? "No" : "Yes") << std::endl;
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
21.06.2012, 13:45     Проверить, есть ли в записи числа три одинаковые цифры #5
MrGluck, Передача не по конст ссылке строки в функцию - печалька
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
21.06.2012, 13:51     Проверить, есть ли в записи числа три одинаковые цифры #6
Исправляемся
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <algorithm>
#include <string>
#include <iostream>
 
bool has3equalchar(const std::string &str)
{
    for (auto i = str.begin(); i!= str.end(); ++i)
        if (std::count(i, str.end(), *i) == 3) return true;
    return false;
}  
 
int main()
{
    const std::string N = "123211";
    std::cout<< (has3equalchar(N) ? "Yes" : "No");
    return 0;
}
bLesk
 Аватар для bLesk
40 / 40 / 1
Регистрация: 24.11.2009
Сообщений: 165
21.06.2012, 13:52     Проверить, есть ли в записи числа три одинаковые цифры #7
ребят, а почему вы не используете using namespace std; ? так же проще, или это считается дурным тоном или ещё есть какая то причина?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
21.06.2012, 13:53     Проверить, есть ли в записи числа три одинаковые цифры #8
Цитата Сообщение от bLesk Посмотреть сообщение
ребят, а почему вы не используете using namespace std; ? так же проще, или это считается дурным тоном или ещё есть какая то причина?
Не хочется валить все функции в одну большую кучу. Может привести к конфликтам, да и не всегда это удобно. Лучше сразу указывать полное имя, чем предоставлять машине возможность дописывать то, чего ты мб и не хотел.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 13:54     Проверить, есть ли в записи числа три одинаковые цифры #9
bLesk, я же вам вроде кидал ссылку на блог, где это обсуждалось.
bLesk
 Аватар для bLesk
40 / 40 / 1
Регистрация: 24.11.2009
Сообщений: 165
21.06.2012, 13:56     Проверить, есть ли в записи числа три одинаковые цифры #10
Цитата Сообщение от soon Посмотреть сообщение
bLesk, я же вам вроде кидал ссылку на блог, где это обсуждалось.
либо вы меня с кем-то путаете, либо я был крайне невнимателен, можете ещё раз предоставить эту ссылку пожалуйста?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 13:59     Проверить, есть ли в записи числа три одинаковые цифры #11
Ага, спутал.
http://www.cyberforum.ru/blogs/34326/blog275.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2012, 14:07     Проверить, есть ли в записи числа три одинаковые цифры
Еще ссылки по теме:

C++ Вложенные циклы(Вывести на экран все четырехзначные числа, в которых ровно три одинаковые цифры)
C++ Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
C++ Проверить, есть ли в записи числа m цифры, совпадающие с цифрами в записи числа n

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
21.06.2012, 14:07     Проверить, есть ли в записи числа три одинаковые цифры #12
Цитата Сообщение от soon Посмотреть сообщение

Не по теме:

почти http://www.cyberforum.ru/humour/

Yandex
Объявления
21.06.2012, 14:07     Проверить, есть ли в записи числа три одинаковые цифры
Ответ Создать тему
Опции темы

Текущее время: 02:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru