Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
CHELitw
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 30
#1

Получить все четырехзначные десятичные числа содержащие не более двух одинаковых цифр - C++

06.09.2012, 21:02. Просмотров 625. Ответов 8
Метки нет (Все метки)

Помогите решить вот такую вот задачку:
Получить все четырехзначные числа(1234,например),в которых не больше 2-х одинаковых цифр.Сколько таких чисел?
Тоесть вывести все числа,и выписать их количество.
Спасибо заранее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2012, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить все четырехзначные десятичные числа содержащие не более двух одинаковых цифр (C++):

Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр - C++
Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр. Например 1234;1345;1789;6789. Выполнить без функций и...

Вывести все четырехзначные числа, в десятичной записи которых нет двух одинаковых цифр. - C++
Вот, собственно и условие: Вывести все четырехзначные числа, в десятичной записи которых нет двух одинаковых цифр. Пожалуйста, помогите...

Найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних - C++
найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних.

Получить все четырехзначные числа, сумма цифр которых равна заданному числу n - C++
Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. ...

Распечатать все четырехзначные натуральные десятичные числа из диапазона [2000,.,3000] - C++
Распечатать все четырехзначные натуральные десятичные числа из диапазона , в записи которых нет двух одинаковых цифр. Вывести такие числа...

Вывести все простые числа, в которых нет двух подряд идущих одинаковых цифр - C++
В файле есть числа, вывести на экран все простые числа, в которых нет двух подряд идущих одинаковых цифр.

8
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
06.09.2012, 21:28 #2
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 <stdio.h>
#include <conio.h>
 
int main()
{
    for (int val = 1000; val <= 9999; val++)
    {
        int *digits = new int[4], i = 0;
        for (int n = val; n > 0; n/=10)
            digits[i++] = n % 10;
 
        int count = 0;
        for (int q = 0; q < i; q++)
            for (int m = q+1; m < i; m++)
                if (digits[m] == digits[q])     count++;
 
        if (count <= 2) printf("%d\n", val);
    }
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/9c0791d6ad71f93f0a11ce4837e12179
4
cactus09
Чайник
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
06.09.2012, 21:31 #3
А вот мой более нерациональный код
C++ (Qt)
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 <conio.h>
 
using namespace std;
 
int main()
{
 int colvo = 0;
 
  for(int a=1;a<10;a++){
   for(int b=0;b<10;b++){
    for(int c=0;c<10;c++){
     for(int d=0; d<10; d++){
     
       if(a!=b && b!=c){
        if (a!=b && b!=d){
         if (b!=c && c!=d){
          cout<<a<<b<<c<<d<<" ";
          colvo++; 
         }
        }
       }
       
     }
    }
   }
  }
  cout<<"Bce "<<colvo<<"\n";
  getch();
  return 0;
}
1
CHELitw
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 30
06.09.2012, 21:38  [ТС] #4
Цитата Сообщение от cactus09 Посмотреть сообщение
А вот мой более нерациональный код
C++ (Qt)
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 <conio.h>
 
using namespace std;
 
int main()
{
 int colvo = 0;
 
  for(int a=1;a<10;a++){
   for(int b=0;b<10;b++){
    for(int c=0;c<10;c++){
     for(int d=0; d<10; d++){
     
       if(a!=b && b!=c){
        if (a!=b && b!=d){
         if (b!=c && c!=d){
          cout<<a<<b<<c<<d<<" ";
          colvo++; 
         }
        }
       }
       
     }
    }
   }
  }
  cout<<"Bce "<<colvo<<"\n";
  getch();
  return 0;
}
Да,это то что нужно)
для начала 1 вариант-слишком мудрено)
Сам хотел что-то такое сделать,но испугался If-ов)
Спасибо)
Да,и зачем в конце getch ();??
0
Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
06.09.2012, 21:48 #5
Вот что у меня получилось
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
#include <iostream>
#include <windows.h>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    setlocale(0, "");
 
    int arr[10];
    int temp, n;
    bool flag;
    int total = 0;
 
    for (int number=1000; number<=9999; number++)
    {
        for (int n=0; n<10; n++)
            arr[n] = 0;
 
        temp = number;
 
        while (temp > 0)
        {
            n = temp % 10;
            temp = temp / 10;
            arr[n]++;
        }
 
        flag = false;
        for (int n=0; n<10; n++)
            if (arr[n] > 2)
            {
                flag = true;
                break;
            }
 
        if (!flag)
        {
            cout << number << ' ';
            ++total;
        }
    }
 
    cout << endl;
    cout << "Количество чисел " << total << endl;
 
 
    system("pause");
    return 0;
}
0
Миниатюры
Получить все четырехзначные десятичные числа содержащие не более двух одинаковых цифр  
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
06.09.2012, 21:49 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char buffer [5];
for (int i = 1023; i <= 9876; i++){
   ::sprintf (buffer, "%d", i);
   if (::strstr (buffer, "00") == null
      && ::strstr (buffer, "11") == null
      && ::strstr (buffer, "22") == null
      && ::strstr (buffer, "33") == null
      && ::strstr (buffer, "44") == null
      && ::strstr (buffer, "55") == null
      && ::strstr (buffer, "66") == null
      && ::strstr (buffer, "77") == null
      && ::strstr (buffer, "88") == null
      && ::strstr (buffer, "99") == null){
       // то что надо, выводим i
...
   }
}
это, конечно, только выловит две одинаковых подряд, но можно иначе переписать. просто сравнивая символы 0 с 1, 0 с 2, 0 с 3, 1 с 2... не так много получится
1
cactus09
Чайник
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
06.09.2012, 22:38 #7
CHELitw,
Цитата Сообщение от CHELitw Посмотреть сообщение
Да,и зачем в конце getch ();??
getch(); (чтоб работал надо написать строчку
C++
1
#include <conio.h>
) ожидает пока ты нажмеш на кнопку (даже возвращает код этой кнопки), в данном случае он играет роль паузы чтоб можно было все посмотреть. Если программа работает под виндой то можно использовать
C++
1
system("pause");
PS там вместо
C++
1
cout<<"Bce "<<colvo<<"\n";
культурнее было б так
C++
1
 cout<<"\nBce "<<colvo<<"\n";
1
CHELitw
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 30
06.09.2012, 22:40  [ТС] #8
cactus09, А как с тобой можно связаться ?
0
cactus09
Чайник
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
06.09.2012, 22:57 #9
CHELitw,
Цитата Сообщение от CHELitw Посмотреть сообщение
А как с тобой можно связаться ?
Так
0
Миниатюры
Получить все четырехзначные десятичные числа содержащие не более двух одинаковых цифр  
06.09.2012, 22:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2012, 22:57
Привет! Вот еще темы с ответами:

Найти все натуральные числа в диапазоне между m и n (m<n), в записи которых нет двух одинаковых цифр. Подсчитать количество таких чисел. - C++
Найти все натуральные числа в диапазоне между m и n (m&lt;n), в записи которых нет двух одинаковых цифр. Подсчитать количество таких чисел.

Найти все трехзначные десятичные числа с заданной суммой цифр - C++
По введенному целому числу M распечатать все трехзначные десятичные числа , сумма цифр которых равна M . Подсчитать также количество таких...

Найдите все четырехзначные числа, сумма цифр каждого из которых равна 15 - C++
Задача:Найдите все четырехзначные числа, сумма цифр каждого из которых равна 15. Мое решение: #include &lt;iostream&gt; using namespace...

Получить все строки из текстового файла, содержащие более n символов - C++
Прошу может кто подскажет как реализовать вот такую задачку. Заранее спасибо !! Дан текстовый файл f. Получить все его строки, содержащие...


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

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

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