Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
JoeSidorov
0 / 0 / 3
Регистрация: 06.11.2015
Сообщений: 59
#1

Встречается ли в числе 6 единиц подряд? - C++

06.11.2015, 00:55. Просмотров 287. Ответов 8
Метки нет (Все метки)

Привет!

С клавиатуры вводится натуральное число, есть ли подряд шесть- 111111 ?

Пример: если водить: 1111118 Ответ: True, если водить: 52111111 Ответ: True, если водить: 11134111 Ответ: False


Например как Код переделать в While или do-while?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <regex>
using namespace std;
typedef unsigned long long ullong;
int main() {
    cout << "Number: ";
    ullong num;
    cin >> num;
    string line = to_string(num);
    string test = "111111";
    regex expr(test);
    if (regex_search(line.cbegin(), line.cend(), expr)) cout << "True\n";
    else cout << "False\n";
    cin.sync();
    cin.get();
}

http://www.cyberforum.ru/cpp-beginners/thread192474.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2015, 00:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Встречается ли в числе 6 единиц подряд? (C++):

Подсчитать количество единиц в числе, кроме единиц в младших разрядах
Дано натуральное число N. Определить количество единиц в цифровой записи числа,...

Определения количества единиц в числе
Как решить? Вводится число n. Определить количество единиц в записи числа n.

Найти количество единиц в числе с 5 по 10 бит
Ввести целое число A и посчитать, сколько единиц в числе с 5 по 10 бит,...

Найти число десятков и единиц в двузначном числе
Дано двузначное число. Найти: а) число десятков в нем: б) число единиц в нем;...

Создать массив,где не будет подряд идущих единиц
Нужно написать программу : у нас есть массив ,состоящий из единиц и нулей,нужно...

8
AlexKolc
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
06.11.2015, 01:07 #2
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

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>
 
using namespace std;
 
int main() {
    cout << "Number: ";
    string s;
    cin >> s;
    s += ' ';
    bool ans = false;
    int k = 0, i = 0;
    while (!ans && i < s.size()) {
        if (s[i] == '1') {
            k++;
        } else
        if (k >= 6)
            ans = true;
        i++;
    }
    cout << "Result: " << ((ans) ? ("True") : ("False")) << endl;
    return 0;
}
Добавлено через 1 минуту
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>
 
using namespace std;
 
int main() {
    cout << "Number: ";
    string s;
    cin >> s;
    s += ' ';
    bool ans = false;
    int k = 0, i = 0;
    do {
        if (s[i] == '1') {
            k++;
        } else
        if (k >= 6)
            ans = true;
        i++;
    } while (!ans && i < s.size());
    cout << "Result: " << ((ans) ? ("True") : ("False")) << endl;
    return 0;
}
Добавлено через 1 минуту
Не понимаю зачем вы вводите целочисленным числом, а потом переделываете в строку, ведь можно сразу строкой вводить.
1
pproger
165 / 68 / 17
Регистрация: 22.03.2011
Сообщений: 196
06.11.2015, 01:25 #3
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

JoeSidorov, взорви моск преподу

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 <algorithm>
#include <iterator>
#include <vector>
#include <sstream>
 
using namespace std;
 
struct ones_only: std::ctype<char> {
    ones_only() : std::ctype<char>(get_table()) {}
 
    static std::ctype_base::mask const* get_table()
    {
        static std::vector<std::ctype_base::mask> 
            rc(std::ctype<char>::table_size,std::ctype_base::space);
 
        std::fill(&rc['1'], &rc['2'], std::ctype_base::digit);
        return &rc[0];
    }
};
 
int main()
{
    string str = "3412415215241114524124111111432521111213124363"; // looong number
    stringstream ss(str);
    istream_iterator<string> itEnd;
    ss.imbue(locale(locale(), new ones_only()));
 
    cout << (find_if(istream_iterator<string>(ss), itEnd,
                [](const string &str){ return str.length() == 6; }) != itEnd ? "exists" : "not exists") << endl;
}
1
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
06.11.2015, 10:08 #4
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
        unsigned long long number;
        std::cin >> number;
        int k = 0;
        while (number != 0 && k != 6)
        {
                if (number % 10 == 1)
                        ++k;
                else
                        k = 0;
                number /= 10;
        }
        if (k == 6)
                std::cout << "YES\n";
        else
                std::cout << "NO\n";
}
2
pproger
165 / 68 / 17
Регистрация: 22.03.2011
Сообщений: 196
06.11.2015, 12:15 #5
MicM, неправильно же
0
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
06.11.2015, 12:49 #6
pproger, в чем же?
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
misha@Dell:~$ ./a.out 
11111111111
YES
misha@Dell:~$ ./a.out 
121212121111
NO
misha@Dell:~$ ./a.out 
23111223111
NO
misha@Dell:~$ ./a.out 
23111111
YES
misha@Dell:~$ ./a.out 
1111123
NO
misha@Dell:~$ ./a.out 
111111132
YES
misha@Dell:~$ ./a.out 
21111112
YES
misha@Dell:~$
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
06.11.2015, 12:53 #7
Цитата Сообщение от pproger Посмотреть сообщение
неправильно же
поясните
0
pproger
165 / 68 / 17
Регистрация: 22.03.2011
Сообщений: 196
06.11.2015, 12:59 #8
MicM, действительно, доп условия выхода из цикла не приметил
0
_Ivana
3232 / 1860 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
06.11.2015, 16:56 #9
Цитата Сообщение от pproger Посмотреть сообщение
JoeSidorov, взорви моск преподу
C++
1
bool f(int n, int i) {return i>=6 || (n ? f(n/10, n%10==1 ? i+1 : 0) : i>=6);}
1
06.11.2015, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2015, 16:56
Привет! Вот еще темы с решениями:

В числе 5672 найти число тысяч, сотен, десятков и единиц
1) В числе 5672 найти число тысяч, сотен, десятков и единиц. Найти сумму и...

Почему не показывается количество единиц при компиляции? в числе 017 их 4(1111)
#pragma hdrstop #include &lt;stdio.h&gt; #include &lt;conio.h&gt; int bit(unsigned int...

В массиве m x n проверить, имеется ли по горизонтали и вертикали цепочка, состоящая подряд из 5 единиц
В массиве m x n проверить, имеется ли по горизонтали и вертикали цепочка,...

Верно ли, что в десятичной записи числа есть шесть единиц подряд?
помогите пожалуйста решить задачу используя цикл while: Дано натуральное...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru