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

Верно ли, что число содержит ровно три одинаковые цифры? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.64
advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
20.11.2010, 20:04     Верно ли, что число содержит ровно три одинаковые цифры? #1
Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544, 0006 и т.д.?
Помогите. Я знаю как вызвать последнее число но как вызвать 1,2,3 ?(желательно без использования масивов)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2010, 20:04     Верно ли, что число содержит ровно три одинаковые цифры?
Посмотрите здесь:

дано натуральное число <=9999 верно ли что оно содержит три одинаковых цифры C++
C++ Дано число n. Верно ли, что это число содержит ровно 3 одинаковых цифры
Верно ли, что число содержт три одинаковые цифры C++
C++ Вложенные циклы(Вывести на экран все четырехзначные числа, в которых ровно три одинаковые цифры)
C++ Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 20:46     Верно ли, что число содержит ровно три одинаковые цифры? #2
Цитата Сообщение от advan Посмотреть сообщение
Верно ли, что это число содержит ровно три одинаковые цифры
Это зависит от того, какое именно число. В общем случае не верно.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
20.11.2010, 21:04     Верно ли, что число содержит ровно три одинаковые цифры? #3
Цитата Сообщение от advan Посмотреть сообщение
(желательно без использования масивов)
А куда сохранять полученные цифры? Можно определить несколько переменных. но сколько?(заранее делать "с запасом" есть мовитон). Можно сделать рекурсивную ф-цию, но сомневаюсь, что это то, что вам нужно. Можно динамически выделять память и работать с указателями. Так как?

Добавлено через 1 минуту
А, есть трюк, можно решить без доп.переменных, но он не из простых.
advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
20.11.2010, 21:07  [ТС]     Верно ли, что число содержит ровно три одинаковые цифры? #4
slice ты не понял смысл задания
Например
n=4567
как закаждой цифрой закрепить переменную?
(a=4,b=5,c=6,d=7)
(без использования масивов)
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 21:11     Верно ли, что число содержит ровно три одинаковые цифры? #5
Kastaneda, чего ты тупишь все элементарно решается. Но массив, конечно, нужен: 10 элементов - под каждую из цифр.

Добавлено через 2 минуты
advan, все правильно я понял. Отщепляй от числа по циферке и раскладывай их по десяти коробочкам. А затем посмотри - есть ли коробочка в которой ровно 3 циферки.
advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
20.11.2010, 21:15  [ТС]     Верно ли, что число содержит ровно три одинаковые цифры? #6
slice
если не затруднит можешь написать пример
заранее спасибо
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
20.11.2010, 21:20     Верно ли, что число содержит ровно три одинаковые цифры? #7
Цитата Сообщение от slice Посмотреть сообщение
Kastaneda, чего ты тупишь все элементарно решается. Но массив, конечно, нужен
И кто тупит, я рассуждал на тему "как обойтись без массива".
:10 элементов - под каждую из цифр.
Зачем? 1 цифра - 1 элемент.

Добавлено через 3 минуты
А понял, зачем 10. По-моему не самое быстрое решение.
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
20.11.2010, 21:24     Верно ли, что число содержит ровно три одинаковые цифры? #8
Цитата Сообщение от advan Посмотреть сообщение
Например
n=4567
как закаждой цифрой закрепить переменную?
(a=4,b=5,c=6,d=7)
(без использования масивов)
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
int main ()
{
    int a;
    int a1,a2,a3,a4;
    cout<<"a=";
    cin>>a;
    while (a<1000 || a>=10000)
    {
        cout<<"\na=";
        cin>>a;
    }
    a1=int(a/1000);
    a2=int(a/100)-a1*10;
    a3=int(a/10)-a1*100-a2*10;
    a4=a-a1*1000-a2*100-a3*10;
    if((a1==a2&& a2==a3) || (a1==a2 && a2==a4) || (a1==a3 && a3==a4) || (a2==a3 && a3==a4))
    {
        cout<<"verno\n";
    }
    else
        cout<<"ne verno\n";
    system ( " Pause " );
    return 0;
}
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 21:29     Верно ли, что число содержит ровно три одинаковые цифры? #9
Цитата Сообщение от Kastaneda Посмотреть сообщение
Зачем? 1 цифра - 1 элемент.
Я это и имел ввиду(по одному элементу на каждую из цифр). Иначе бы тире в моем предложении не надо было ставить.


Цитата Сообщение от Kastaneda Посмотреть сообщение
И кто тупит
Ты. Я же к тебе обращался. Разве не К твоему посту относятся размышления о переменных "с запасом" и рекурсивных функциях.

Добавлено через 4 минуты
Цитата Сообщение от advan Посмотреть сообщение
заранее спасибо
заранее пожалуйста.
Kastaneda
20.11.2010, 21:29
  #10

Не по теме:

Либо мы не понимаем друг друга, либо один из нас тупит.
Я предлогал варианты, как сделать без массива, далее твои слова: "чего ты тупишь...Но массив, конечно, нужен"
И в чем моя тупость?

slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 21:30     Верно ли, что число содержит ровно три одинаковые цифры? #11
Писать пример не буду.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
20.11.2010, 21:36     Верно ли, что число содержит ровно три одинаковые цифры? #12
Цитата Сообщение от slice Посмотреть сообщение
Я это и имел ввиду. Иначе бы тире в моем предложении не надо было ставить.
Мы вообще о разном. Я увидел решение так: массив заполняем цифрами - 1 массив для всех цифр числа, затем инкременировать элемент массива, чей порядок равен цифре числа. В конце искать элемент массива равный 3. А ты предлагаешь (как я понял твою мысль) создать 10 массивов (по массиву на каждую цифру) по 10 элементов, добавлять в массивы соответствующие цифры и в конце смотреть, какой массив модержит 3 элемента.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
20.11.2010, 21:37     Верно ли, что число содержит ровно три одинаковые цифры? #13
advan, уточни задание.
Подаются только 4-ех значные числа ?
Kastaneda
20.11.2010, 21:38
  #14

Не по теме:

Что-то у меня сегодня "день флуда на форуме", заканчиваю)

advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
20.11.2010, 21:41  [ТС]     Верно ли, что число содержит ровно три одинаковые цифры? #15
Цитата Сообщение от odip Посмотреть сообщение
advan, уточни задание.
Подаются только 4-ех значные числа ?
n<=9999
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
20.11.2010, 21:42     Верно ли, что число содержит ровно три одинаковые цифры? #16
Вот решение с массивом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int mas[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
while(number > 0)
{
    ++mas[number % 10];
    number /= 10;
}
for(int i = 0; i < 10; ++i)
    if(mas[i] == 3)
    {
        std::cout<<"true";
        break;
    }
if(i == 10)
    std::cout<<"false";
Kastaneda, slice, думаю, вам теперь ясен смысл задания и ваш спор решен? А теперь попробуйте сделать без массива
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 21:44     Верно ли, что число содержит ровно три одинаковые цифры? #17
M128K145
+1


Kastaneda
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я предлогал варианты, как сделать без массива
я не увидел ни одного варианта, объясни как сделать без массива.
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
20.11.2010, 21:45     Верно ли, что число содержит ровно три одинаковые цифры? #18
Вот решение через функции без массивов. Подправьте там если что не так. Выводит 1 или 0.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int countofdigit(int x)
{
    int p=x, k=1;
    while (p>=10)
    {
        p/=10;
        k++;
    }
    return k;
}
 
int numeral(int x, int index)
{
    int n=countofdigit(x),p=x;
    for (int i=n; i>index; i--)
    {
        p/=10;
    }
    if (p<10) return p;
    return p%((p/10)*10);
}
 
bool checknum(int x)
{
    int n=countofdigit(x),k=1,temp;
    for (int i=1; i<=n; i++)
    {
        temp=numeral(x,i);
        for (int j=i+1; j<=n; j++)
        {
            if (temp==numeral(x,j))
            {
                k++;
            }
        }
        if (k==3)
        {
            return true;
        }
        else
        {
            k=1;
        }
    }
    return false;
}
 
void main()
{
    int x;
    cin>>x;
    cout<<checknum(x);
    system("pause");
}
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
20.11.2010, 21:45     Верно ли, что число содержит ровно три одинаковые цифры? #19
Цитата Сообщение от slice Посмотреть сообщение
объясни как сделать без массива
В лоб - перебором остатков от деления на степени 10


Цитата Сообщение от almazsr Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
int countofdigit(int x)
{
        int p=x, k=1;
        while (p>=10)
        {
                p/=10;
                k++;
        }
        return k;
}
Можно написать проще,
C++
1
int n = log10(x) + 1;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2010, 21:52     Верно ли, что число содержит ровно три одинаковые цифры?
Еще ссылки по теме:

C++ Дано натуральное четырехзначное число n.верно ли что это число содержит три одинаковые цифры
C++ Дано натуральное четырехзначное число n. Верно ли что это число содержит три одинаковые цифры
Определить, верно ли, что заданное натуральное число содержит ровно три одинаковые цифры C++

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

Или воспользуйтесь поиском по форуму:
advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
20.11.2010, 21:52  [ТС]     Верно ли, что число содержит ровно три одинаковые цифры? #20
Все спасибо всем понял
VASSUV запустил - работает
Yandex
Объявления
20.11.2010, 21:52     Верно ли, что число содержит ровно три одинаковые цифры?
Ответ Создать тему
Опции темы

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