Страницы

Поиск по вопросам

вторник, 31 марта 2020 г.

Одновременный перебор нескольких значений

#cpp


int main()
{
    string t1 = "L", t2 = "u", t3 = "k", t4 = "c", t5 = "y";
    string temp1, temp2, temp3, temp4, temp5;
    temp1 = '0', temp2 = '0', temp3 = '0', temp4 = '0', temp5 = '0';
    while ((t1 != temp1) && (t2 != temp2) &&
           (t3 != temp3) && (t4 != temp4) && (t5 != temp5))
    {
        temp1 = rand() % 'a' + 32;
        temp2 = rand() % 'a' + 32;
        temp3 = rand() % 'a' + 32;
        temp4 = rand() % 'a' + 32;
        temp5 = rand() % 'a' + 32;
        cout << temp1 << temp2 << temp3 << temp4 << temp5; system("cls");
    }

    cout << temp1 << temp2 << temp3 << temp4 << temp5;

    return 0;
}


Эта код должен "искать" каждый символ, пока не найдет нужный. Но как бы это всё в
унисон организовать... Можно напичкать циклами, каждый из которых ищет свой символ
по очереди, но это долго, потому что оригинальное слово другое и большое.  Сейчас даже
не представляю, как заставить перебирать все символы подряд, а так же, останавливая
перебор символа, когда он найден, продолжая искать другие.
    


Ответы

Ответ 1



Так вам надо зрелищ или подбор? Подбор - все символы начинаются с a и идут, меняясь одновременно, пока не будет получен нужный... #include #include #include using namespace std; int main(int argc, const char * argv[]) { string res = "Qwertyui"; string att = "AAAAAAAA"; for(;res != att;) { cout << att << '\r'; for(int i = 0; i < att.length(); ++i) if (att[i] != res[i]) att[i]++; std::this_thread::sleep_for(200ms); // задержка для зрелищности :) } cout << att << endl; }

Комментариев нет:

Отправить комментарий