2 / 2 / 3
Регистрация: 22.10.2014
Сообщений: 26
1

Найти все пятизначные числа, в которых ровно две одинаковые цифры

22.10.2014, 12:50. Показов 1892. Ответов 5
Метки нет (Все метки)

Помогите написать программу циклами! Не получается что-то.
Необходимо: вывести на экран все пятизначные числа, в которых ровно две одинаковые цифры.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2014, 12:50
Ответы с готовыми решениями:

Найти все пятизначные числа, в которых ровно две одинаковые цифры (только циклами !)
Помогите пожалуйста. Никак не получается решить задачу. Необходимо вывести на экран все пятизначные...

Найти все четырехзначные числа, в которых ровно две одинаковых цифры
Найти все четырехзначные числа, в которых ровно две одинаковых цифры

Вложенные циклы(Вывести на экран все четырехзначные числа, в которых ровно три одинаковые цифры)
Вывести на экран все четырехзначные числа, в которых ровно три одинаковые цифры. Подсчитать...

Найти все 4-значные числа, у которых ровно две одинаковые цифры
Найти все 4-значные числа, у которых ровно две одинаковые цифры. Либо 7 либо 8 через функцию +

5
1456 / 793 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.10.2014, 13:26 2
Лучший ответ Сообщение было отмечено Italy как решение

Решение

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
#include <iostream>
#include <iomanip>
#include <iterator>
#include <algorithm>
#include <vector>
#include <random>
#include <ctime>
 
int main()
{
   std::mt19937 gen{static_cast<unsigned>(std::time(nullptr))};
   std::uniform_int_distribution<> dist{100, 1000000};
   std::vector<int> v(1000);
   std::generate(v.begin(), v.end(), [&]{return dist(gen);});
   std::copy_if(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "\n"),[](int n)
   {
      std::string str = std::to_string(n);
      if (str.size() != 5) return false;
      else {
         std::sort(str.begin(), str.end());
         return std::distance(str.begin(), std::unique(str.begin(), str.end())) == 4;
      }
   });
 
   return 0;
}
1
2 / 2 / 3
Регистрация: 22.10.2014
Сообщений: 26
22.10.2014, 14:01  [ТС] 3
Благодарю Вас !!! Только не могли бы вы немного разъяснить ход решения.

Добавлено через 14 минут
Кстати выдаёт 3 ошибки:
1) to_string: не является членом 'std',
2) to_string: идентификатор не найден,
3) namespace 'std' не содержит члена 'to_string'.
0
1456 / 793 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.10.2014, 14:06 4
Лучший ответ Сообщение было отмечено Italy как решение

Решение

Italy, для понимания данного кода надо быть хоть от части знакомым с STL и C++11. Все объяснять я не вижу смысла, что именно не понятно?

Добавлено через 1 минуту
Цитата Сообщение от Italy Посмотреть сообщение
to_string: не является членом 'std'
Компилятор должен поддерживать С++11.
1
2 / 2 / 3
Регистрация: 22.10.2014
Сообщений: 26
22.10.2014, 18:27  [ТС] 5
Да нет, я разобрался, спасибо, просто что сам visual 13 тупил.
0
2 / 2 / 3
Регистрация: 22.10.2014
Сообщений: 26
25.10.2014, 16:11  [ТС] 6
Задача решена верно, но не могли бы вы помочь написать программу вложенными циклами.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2014, 16:11
Помогаю со студенческими работами здесь

Найти все четырехзначные числа, в которых ровно две одинаковые цифры.
uses crt; var a,b,c,d:integer; begin clrscr; for a:= 1 to 9 do for b:= 0 to 9 do for...

Найти все трехзначные числа, в которых есть две одинаковые цифры
Помогите, люди добрые! Нужно решить задачу: Найти все трехзначные числа, в которых есть две...

Найти все четырёхзначные числа,в которых есть две одинаковые цифры
Найти все четырёхзначные числа,вкоторых есть две одинаковые цифры

Найти все четырехзначные числа, в которых есть две одинаковые цифры
Найти все четырехзначные числа, в которых есть две одинаковые цифры! Заранее благодарю! Кто чем...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru