Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<vector>
- using namespace std;
- bool isRightPass(const char *pass, const char* pass2)
- {
- return !strcmp(pass, pass2);
- }
- void generator(const char* pass, const char* mapChar, vector<int> &curretPass, int scale = 0, int maxSizePass = 3)
- {
- char tmpPass[10] = "";
- bool isFind = 0;
- while (!isFind)
- {
- if (curretPass[scale] == strlen(mapChar)) //если текущий элемент, последйний в карте подбора
- {
- if (scale < maxSizePass && curretPass[0] == strlen(mapChar)) //если текущий шаг(колличество знаков) меньше МАКСИМАЛЬНОГО
- {
- curretPass.push_back(0);
- scale++;
- for (int i = 0; i < curretPass.size(); i++) //Обнуляем все значение после добавления нового элемента
- {
- curretPass[i] = 0;
- }
- }
- else
- {
- for (int i = curretPass.size() - 1; i > 0; i--)
- {
- if (curretPass[i] == strlen(mapChar))
- {
- curretPass[i] = 0; //повторное обнуление
- if (curretPass[i - 1] == strlen(mapChar))
- {
- curretPass[i - 1] = 0; //вроде как уже учтено
- }
- else
- {
- curretPass[i - 1]++;
- }
- }
- }
- if (curretPass[0] == strlen(mapChar))
- {
- generator(pass, mapChar, curretPass, scale, maxSizePass);
- }
- }
- }
- for (int i = 0; i < curretPass.size(); i++)
- {
- tmpPass[i] = mapChar[curretPass[i]];
- }
- tmpPass[curretPass.size()+1] = '/0';
- isFind = isRightPass(pass, tmpPass);
- cout << "pass -> [" << tmpPass << "] Результат - " << isFind << endl;
- curretPass[scale]++;
- generator(pass, mapChar, curretPass, scale, maxSizePass);
- }
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- char pass[100] = "12";
- char mapChar[] = "0123456789";
- vector<int> tmpIntMass = { 0 };
- generator(pass, mapChar, tmpIntMass);
- std::cout << "Hello World!\n";
- }
- // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
- // Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
- // Советы по началу работы
- // 1. В окне обозревателя решений можно добавлять файлы и управлять ими.
- // 2. В окне Team Explorer можно подключиться к системе управления версиями.
- // 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
- // 4. В окне "Список ошибок" можно просматривать ошибки.
- // 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
- // 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement