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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 5.00
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
#1

Определить, содержит ли 4-х значное число 3 одинаковые цифры. - C++

12.08.2009, 13:30. Просмотров 2425. Ответов 21
Метки нет (Все метки)

Я сортирую, а потом сравниваю, но что то не работает

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
char* mas(char* a, int s);
 
int main(int argc, char *argv[])
{
    const int size=100;
    char arr[size];
    int i, k;
    cout << "Write number: ";
    cin.getline(arr, size);
    k=strlen(arr);    
    mas(arr, k);
    if((arr[0]==arr[1]==arr[2]) || (arr[1]==arr[2]==arr[3]))
       cout << "V chisle esti 3 odinakovih!\n";
    else 
       cout << "qweqeeqwe\n";
//    for(i=0; i<k; i++)
//       cout << arr[i] << " ";    
      
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
char* mas(char* a, int s)
{
      int i, j, tmp;
      for(i=0; i<s; i++)
      {
               for(j=0; j<s-1-i; j++)
               {
                        if(a[j] > a[j+1])
                        {
                                tmp=a[j];
                                a[j] = a[j+1];
                                a[j+1] = tmp;
                        }
               }
      }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2009, 13:30     Определить, содержит ли 4-х значное число 3 одинаковые цифры.
Посмотрите здесь:

Верно ли, что число содержит ровно три одинаковые цифры? C++
Варианты как разложить 5-значное число на цифры C++
C++ Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры
C++ Дано натурально n-значное число. Проверить содержит ли оно две одинаковые цифры. Оформить в виде функции
C++ Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
C++ Дано натуральное четырехзначное число n.верно ли что это число содержит три одинаковые цифры
C++ Дано натуральное четырехзначное число n. Верно ли что это число содержит три одинаковые цифры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
12.08.2009, 23:26     Определить, содержит ли 4-х значное число 3 одинаковые цифры. #21
выполнятся будет дольше
Пусть дольше. Кто сказал нужно самый быстрый способ ?
К тому же на таких коротких проходах разницы не будет заметно.

Если нужно очень быстро - делаем так:
C++
1
2
3
4
5
6
char have3in4[10000]= { ..... }; /* заранее пишем ответы на все 4-ех значные числа */
 
int number;
 
cin >>number;
cout << (have3in4[number] ? "yes" : "no" ) <<"\n";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2009, 10:23     Определить, содержит ли 4-х значное число 3 одинаковые цифры.
Еще ссылки по теме:

Определить, верно ли, что заданное натуральное число содержит ровно три одинаковые цифры C++
C++ Дано трицифровое число.Определить имеет ли число одинаковые первую и последнюю цифры
Определить, входят ли в 4-х значное число цифры 2 или 7. Не работает ветка else C++
Проверить является ли число палиндромом, содержит ли одинаковые цифры, или все различные. C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
13.08.2009, 10:23     Определить, содержит ли 4-х значное число 3 одинаковые цифры. #22
Я думаю логичней для ответа на вопрос сколько в числе одинаковых цифр представить это самое число массивом цифр из которых оно состоит, а затем в полученном массиве произвести подсчёт одинаковых элементов . Подсчёт элементов я вижу у Monte-Cristo, ну что-то подобное и у меня, правда у меня на этапе подсчёта цифр в числе идёт одновременное их копирование в массив. Вообщем вот исходник

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
60
#include <windows.h>
#include <stdio.h>
 
//Функция для представления числа массивом чисел т.е
//1024 будет представлено как {4,2,0,1};
int NumToArray(int num);
int * NumArray = (int *)malloc(sizeof(int));
 
void main()
{
    printf("Vvedite chislo\r\n");
    int num;scanf("%d",&num);
    int i,nSame = 0,nDigits = NumToArray(num);
    if(nDigits < 3 || 4 < nDigits)
        printf("Vvedennoe chislo ne 4-hznachnoe\r\n");
    else
    {
        for(i = 0; i < nDigits;i++)
        {
            if(NumArray[0] == NumArray[i])
                nSame++;
        }
        printf("V chisle %d ",num);
        if(2 < nSame)
            printf("[%d] cifri sovpadaut",nSame);
        else
            printf("menee 3-h odinakovih cifr");
        NumArray = (int *)realloc((void *)NumArray,sizeof(int));
    }
    printf("\r\nVvedite NUM1 dlya vvoda novogo chisla\r\n");
    scanf("%d",&num);
    if(num == 1)
        main();
}
 
int NumToArray(int num)
{
    int nDigits = 0,iBuf;
    if(num < 0)
        num = 0 - num;
    if(num == 0)
        NumArray[nDigits] = 0;
    else
    {
        iBuf = num;
        while(0 < iBuf)
        {
            NumArray[nDigits] = (iBuf % 10);
            iBuf /= 10;
            nDigits++;
 
            NumArray = (int *)realloc
                (
                    (void *)NumArray,
                    sizeof(int)*(nDigits + 1)
                );
        }
    }
    return nDigits;
}
Миниатюры
Определить, содержит ли 4-х значное число 3 одинаковые цифры.  
Yandex
Объявления
13.08.2009, 10:23     Определить, содержит ли 4-х значное число 3 одинаковые цифры.
Ответ Создать тему
Опции темы

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