Перебор подстановок с помощью циклов - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д