Перебор подстановок с помощью циклов - C#
Формулировка задачи:
Здравствуйте если не сложно помогите с задачкой
желательно с помощью циклов
121хххххх9
надо создать все возможные варианты,"х" меняется от 0 до 9 но цифры 1,2,9
уже использоваться не могут и сами "х"-сы не должны повторяться
короче цифры не должны повторяться в одной строке 1,2 и 9 всегда остаются на своем месте
спасибо
что-то типа этого нет?
for (int i = 100000; i < 999999; i++)
{
string str = Convert.ToString (i);
for (int j = 0; j < str.Length; j++)
{
if (j == 1 || j == 2 || j == 9)
{
continue;
}
}
Console.WriteLine("121" + i + "9");
}Решение задачи: «Перебор подстановок с помощью циклов»
textual
Листинг программы
static bool[] isValid;
static void Generate(StringBuilder current, int lengthRemain)
{
if (lengthRemain == 0)
Console.WriteLine("121" + current.ToString() + "9");
else
{
for (int next = 0; next <= 9; next++)
if (isValid[next])
{
isValid[next] = false;
current.Append(next);
Generate(current, lengthRemain - 1);
current.Remove(current.Length - 1, 1);
isValid[next] = true;
}
}
}
static void Main()
{
isValid = Enumerable.Repeat(true, 10).ToArray();
isValid[1] = isValid[2] = isValid[9] = false;
Generate(new StringBuilder(), 6);
}