Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.53/30: Рейтинг темы: голосов - 30, средняя оценка - 4.53
advan
0 / 0 / 1
Регистрация: 20.11.2010
Сообщений: 25
1

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

20.11.2010, 20:04. Просмотров 5874. Ответов 22
Метки нет (Все метки)

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

Определить, верно ли, что заданное натуральное число содержит ровно три одинаковые цифры
Решите задачу дано натуральное число n n 10000 определить, верно ли, что это число содержит ровно...

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

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

Дано число n. Верно ли, что это число содержит ровно 3 одинаковых цифры
Помогите пожалуйста с решением очень надо.))) С++ Добавлено через 44 минуты Парни выручайте......

Проверить, четырехзначное ли число, и верно ли, что в нем ровно три цифры 5
Дано целое число . Если оно положительное четырехзначное , то определить , верно ли что в нем ровно...

22
slice
63 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 20:46 2
Цитата Сообщение от advan Посмотреть сообщение
Верно ли, что это число содержит ровно три одинаковые цифры
Это зависит от того, какое именно число. В общем случае не верно.
0
Kastaneda
Jesus loves me
Эксперт С++
5058 / 3076 / 351
Регистрация: 12.12.2009
Сообщений: 7,774
Записей в блоге: 2
Завершенные тесты: 1
20.11.2010, 21:04 3
Цитата Сообщение от advan Посмотреть сообщение
(желательно без использования масивов)
А куда сохранять полученные цифры? Можно определить несколько переменных. но сколько?(заранее делать "с запасом" есть мовитон). Можно сделать рекурсивную ф-цию, но сомневаюсь, что это то, что вам нужно. Можно динамически выделять память и работать с указателями. Так как?

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

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

Добавлено через 3 минуты
А понял, зачем 10. По-моему не самое быстрое решение.
0
VASSUV
MiThEoN
443 / 307 / 35
Регистрация: 31.10.2009
Сообщений: 505
Записей в блоге: 2
Завершенные тесты: 1
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;
}
2
slice
63 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 21:29 9
Цитата Сообщение от Kastaneda Посмотреть сообщение
Зачем? 1 цифра - 1 элемент.
Я это и имел ввиду(по одному элементу на каждую из цифр). Иначе бы тире в моем предложении не надо было ставить.


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

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

Не по теме:

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

0
slice
63 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 21:30 11
Писать пример не буду.
0
Kastaneda
Jesus loves me
Эксперт С++
5058 / 3076 / 351
Регистрация: 12.12.2009
Сообщений: 7,774
Записей в блоге: 2
Завершенные тесты: 1
20.11.2010, 21:36 12
Цитата Сообщение от slice Посмотреть сообщение
Я это и имел ввиду. Иначе бы тире в моем предложении не надо было ставить.
Мы вообще о разном. Я увидел решение так: массив заполняем цифрами - 1 массив для всех цифр числа, затем инкременировать элемент массива, чей порядок равен цифре числа. В конце искать элемент массива равный 3. А ты предлагаешь (как я понял твою мысль) создать 10 массивов (по массиву на каждую цифру) по 10 элементов, добавлять в массивы соответствующие цифры и в конце смотреть, какой массив модержит 3 элемента.
0
odip
Эксперт С++
7169 / 3227 / 77
Регистрация: 17.06.2009
Сообщений: 14,166
20.11.2010, 21:37 13
advan, уточни задание.
Подаются только 4-ех значные числа ?
0
Kastaneda
20.11.2010, 21:38
  #14

Не по теме:

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

1
advan
0 / 0 / 1
Регистрация: 20.11.2010
Сообщений: 25
20.11.2010, 21:41  [ТС] 15
Цитата Сообщение от odip Посмотреть сообщение
advan, уточни задание.
Подаются только 4-ех значные числа ?
n<=9999
0
M128K145
Эксперт JavaЭксперт С++
8348 / 3569 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
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, думаю, вам теперь ясен смысл задания и ваш спор решен? А теперь попробуйте сделать без массива
1
slice
63 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
20.11.2010, 21:44 17
M128K145
+1


Kastaneda
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я предлогал варианты, как сделать без массива
я не увидел ни одного варианта, объясни как сделать без массива.
1
almazsr
233 / 170 / 25
Регистрация: 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");
}
0
M128K145
Эксперт JavaЭксперт С++
8348 / 3569 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
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;
2
advan
0 / 0 / 1
Регистрация: 20.11.2010
Сообщений: 25
20.11.2010, 21:52  [ТС] 20
Все спасибо всем понял
VASSUV запустил - работает
0
20.11.2010, 21:52
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2010, 21:52

Верно ли, что число содержт три одинаковые цифры
проьба помочь составить программу на С++ Дано натуральное четырехзначное чиcло n. Верно ли, что...

Дано натуральное число <= 9999; верно ли, что оно содержит три одинаковых цифры?
дано натуральное число &lt;=9999 верно ли что оно содержит три одинаковых цифры как например 6676,...

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


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

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

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