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

Задача:Определить повторяются Цифры в Числе или нет... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Синтаксис- непонятные знаки http://www.cyberforum.ru/cpp-beginners/thread341027.html
Что значат знаки: ? и :
C++ Инкремент и вывод на консоль. Непонятное. Объясните, пожалуйста, почему, если так: int i = 5; cout << i << " "; cout << ++i << "\n";, то на консоль выводится всё правильно: 5 6. А если расположить так: int i = 5; cout << i << " " << ++i << "\n";, то выводится: 6 6? http://www.cyberforum.ru/cpp-beginners/thread341009.html
C++ файл.txt
как сделать так чтобы при записи в файл *.txt текст писался на новой строке? Вот на пример вот так: 1)number name 2)number name А не так как у меня 1)number name 2)number name
нубовопросы C++
У меня вопрос, связанный с циклами. Допустим, нужно суммировать числа от 1 до 10 и в итоге получится 55. Для это сделаем { int sum = 0, val = 1; while ( val <= 10 ) sum += val; ++val; } Теперь вопрос:
C++ Вопрос про cin.getline() http://www.cyberforum.ru/cpp-beginners/thread340987.html
char mas; cout<<"Add Age "; cin>>Age; cout<<"Add Name "; cin.getline(mas,20); Name = new char; strcpy(Name, mas); cout<<"Add University ";
C++ Разделить массив Char на слова Привет.. Вот есть массив символов: char buf; Немного далее в коде он печатается: printf(buf); Получается в таком виде: word1 word2 word3 подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
11.08.2011, 14:19     Задача:Определить повторяются Цифры в Числе или нет...
Как-то в другой теме, связанной с разбиением числа на цифры я говорил, что все подобные задачи решаются универсальным способом: написанием входного итератора, который возвращает очередную цифру числа. Если такой итератор написать, то любая подобная задача решается очень просто. Конеяно этот подход не для студентов, которым нужно быстро сделать какую-то частную задачу.
Здесь я поокажу, как выглядет код, когда имеется подобный итератор. Я пропущу заголовочные файлы, чтобы меньше нужно было вводить кода

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{
   long x;
 
   std::cin >> x;
 
   long digits[10] = {};
 
   bool repeat = false;
 
   usr::digital_iterator<long> first( x ), last;
   for ( ; first != last ; ++ first )
   {
      if ( ( repeat = ++digits[*first] > 1 ) == true ) break;
   }
 
   if ( repeat ) std::cout << "Digit " << *first << " is repeated\n";
   else std::cout << "There is no repeated digit\n";
 
   return ( 0 );
}
Преимущество такого подхода состоит в том, что вы лишь один раз пишите подобный входной итератор и с помощью него можете решить любую задачу, где требуется разложение числа на цифры. Более того вы можете с этим итераторм использовать любой алгоритм!
 
Текущее время: 00:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru