Страницы

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

суббота, 8 июня 2019 г.

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

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; }
Эта код должен "искать" каждый символ, пока не найдет нужный. Но как бы это всё в унисон организовать... Можно напичкать циклами, каждый из которых ищет свой символ по очереди, но это долго, потому что оригинальное слово другое и большое. Сейчас даже не представляю, как заставить перебирать все символы подряд, а так же, останавливая перебор символа, когда он найден, продолжая искать другие.


Ответ

Так вам надо зрелищ или подбор? Подбор - все символы начинаются с 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 << '
'; for(int i = 0; i < att.length(); ++i) if (att[i] != res[i]) att[i]++; std::this_thread::sleep_for(200ms); // задержка для зрелищности :) } cout << att << endl; }

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

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