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

пользователь вводит пароль,программа должна его вычислить перебором - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ "Морской Бой" С++ http://www.cyberforum.ru/cpp-beginners/thread592204.html
Есть "Морской Бой" на С++, консольный. Нужен???
C++ Простейшая прога но не хочет компилиться #include <stdio.h> #include <conio.h> #include <math.h> int main() { int i ; scanf("%d",&i); int kol = 1; double d = i; http://www.cyberforum.ru/cpp-beginners/thread592185.html
C++ Сформировать идеально сбалансированное бинарное дерево
Подскажите в этом отрывке кода и формируется бинарное дерево TNode* makePerfectBalancedTree(int n, TNode* p) { TNode *r; int nl, nr; if(n == 0) { p = NULL; return p;
C++ Дана матрица размера M × N
Дана матрица размера M × N. В каждой строке матрицы найти минимальный элемент.
C++ В упорядоченном по возрастанию массиве подсчитать количество элементов http://www.cyberforum.ru/cpp-beginners/thread592165.html
В упорядоченном по возрастанию массиве подсчитать количество элементов, расположенных до элемента со значением К. Нахождение индекса элемента со значением К реализовать в виде функции.
C++ Операторы Написать программу ,которая запрашивает ввод 2хцелых чисел.Затем выполняет расчёт и выдачу суммы 2х чисел,находящихся в пределах между 2мя введёнными целыми числами.Первым выводится меньшее целое число. подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
31.05.2012, 21:05     пользователь вводит пароль,программа должна его вычислить перебором
Примерно так.
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 <stack>
#include <string>
 
void brute(const std::string& str, size_t level = 0, std::string cur = "")
{
    static const std::string alpha = "0123456789qwertyuiopasdfghjklzxcvbnm";
    
    if (level == str.length() )
    {
        if (str == cur)
            std::cout << cur << std::endl;
        
        return;
    }
    
    for (size_t i = 0; i < alpha.length(); ++i)
        brute(str, level + 1, cur + alpha[i]);
}
 
int main()
{
    std::string pass;
    std::cin >> pass;
    brute(pass);
}
Только учтите, что уже при 5 символах программа будет задумываться(36^5 вариантов все-таки).

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