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

Числа-вампиры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм "защиты" библиотеки http://www.cyberforum.ru/cpp-beginners/thread936519.html
Добрый день, нужна помощь, составил не большой алгоритм по защите библиотеки. Посмотрите что к чему и подкорректируйте по возможности. Вся проблема в том, что сам процесс могут хукнуть. Есть какие-либо идеи как решить этот нюанс? Пользователь переходит на сайт > выбирает оплатить > переходит на робокассу > выбирает нужный ему способ оплаты > оплачивает > сразу после оплаты будет доступен...
C++ Открытие файла с видео из программы Доброго времени суток всем. Есть такая проблема. Хочу сделать прожку, для упорядочивания фильмов. Что б можно было добавлять к ним обложки, описание. Что-то вроде каталога. Ну и тот фильм который понравился можно было бы запустить из этой проги. Как это сделать чтоб файл открылся (можно даже не в самой проге, а через сторонний проигрыватель). Все облазил, но ни чего похожего даже не нашел. Быть... http://www.cyberforum.ru/cpp-beginners/thread936504.html
C++ путь к файлу создание папак и файла
Доброе всем время суток ) Вопрос такова характера У меня есть некий класс Есть ifstream ofstream для данного класса вопрос В общем пользователь вводит путь а программе необходимо создать папки по этому пути и файл Например: C:\papka1\papka2\id1.bin papka1 papka2 id1 не сущевствуют их необходимо создать и потом записать в файл данный класс
Как правильно занести данные в массив char и вывести их из него C++
char a1; //Массив в который надо перенести данные char a2 = "32167aqe"; //Массив - источних данных cout << "Musor v a1:" << endl; //Выводим содержимое массива a1 в который мы будем переносить данные из массива a2 for (int i=0; i<50; i++) { cout << a1; //Посимвольный вывод } cout << endl; memset(a1, NULL, 50); //Присваиваем NULL массиву a1 для того чтобы очистить его от мусора ...
C++ Конструктор класса не видит конструктор по умолчанию другого класса http://www.cyberforum.ru/cpp-beginners/thread936387.html
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора по умолчанию, хотя он там, конечно, есть. class Node; class HeadNode; class InternalNode; class TailNode; #include "stdafx.h" #include <iostream> #include "Classes.h" using namespace std;
C++ Нужно ли повторно перекомпилировать код при изменении определение функции Здравствуйте, прочитав тему Особенность объявления функции , а именно сообщение tzeentch: Допустим, у нас вот такая ситуация: функция a() вызывает функцию b(), а функция b(), в свою очередь, функцию a(). Опишите мне это без предварительного обьявления Потом, h-файлы придумали для ускорения компиляции проектов в доисторические времена, ведь при изменении h-файла надо перекомпилировать все... подробнее

Показать сообщение отдельно
Kaskera
0 / 0 / 0
Регистрация: 27.07.2013
Сообщений: 34
11.08.2013, 18:26  [ТС]     Числа-вампиры
Цитата Сообщение от Toshkarik Посмотреть сообщение
Вариант с поиском делителей очень медленный, ведь нужно будет еще проверять вхождение цифр в число, причем каждая цифра должна использоваться один раз.

Вот набросал, все работает. Правда не рекурсия:

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
#include <string>
#include <sstream>
#include <algorithm>
 
bool isVampireNumber( const int num, int &first, int &second ) {
   std::string numStr;
   std::string firstStr;
   std::string secondStr;
   std::stringstream s;
   
   s << num;
   s >> numStr;
   
   int numLength = numStr.length();
   
   if ( numLength & 1 )
      return false;
   
   int partsStr = numLength / 2;
   
   std::sort( numStr.begin(), numStr.end());
   
   do {
      firstStr.assign( numStr.substr( 0, partsStr ));
      secondStr.assign( numStr.substr( partsStr ));
      
      if ( firstStr[ partsStr - 1 ] != '0' || secondStr[ partsStr - 1 ] != '0' ) {
         if (( first = std::atoi( firstStr.c_str())) * ( second = std::atoi( secondStr.c_str())) == num )
            return true;
      }
   } while ( std::next_permutation( numStr.begin(), numStr.end()));
   
   return false;
}
Спасибо! Я проанализирую код, мне поможет.

А как рекурсивно реализовать? От меня ведь этого требуют.
 
Текущее время: 22:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru