Произвольная глубина вложенного цикла - C#
Формулировка задачи:
Доброго времени суток.
Прошу о помощи, балуюсь с брутфорсом и подобными штуками, необходимо установить глубину вложенных циклов равной длине алфавита.
Вот что имею на данный момент.
Цель оптимизировать этот фрагмент:
Заранее спасибо за уделенное внимание.
char[] alph =new char[]{ '1', '2', '3' }; while (boolscore) { for (int i = 0; i < alph.Length; i++) { for (int j = 0; j < alph.Length; j++) { for (int m = 0; m < alph.Length; m++) { Spass = alph[i].ToString() + alph[j].ToString() + alph[m].ToString(); proc.StartInfo.Arguments = Spass; proc.Start(); System.Threading.Thread.Sleep(50); if (!File.Exists("C:\\Users\\П\\Desktop\\bf\\ok.txt")) { Console.WriteLine("Неудача номер {0} : {1}", score, Spass); score++; } else { File.Delete("C:\\Users\\П\\Desktop\\bf\\ok.txt"); Console.WriteLine("Пароль {0} найден с {1} попытки", Spass, score); boolscore = false; return; } try { proc.Kill(); } catch (Exception) { } } } } }
for (int i = 0; i < alph.Length; i++) { for (int j = 0; j < alph.Length; j++) { for (int m = 0; m < alph.Length; m++) { Spass = alph[i].ToString() + alph[j].ToString() + alph[m].ToString();
Решение задачи: «Произвольная глубина вложенного цикла»
textual
Листинг программы
using System; using System.Linq; using System.Collections.Generic; class Program { public static void Main() { char[] alphabet = "abracadabra".Distinct().ToArray(); Queue<string> q = new Queue<string>(); q.Enqueue(String.Empty); string password; while ((password = q.Dequeue()) != "abracadabra") { foreach (char ch in alphabet) { q.Enqueue(password + ch); } } Console.WriteLine(password); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д