Произвольная глубина вложенного цикла - 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);
}
}