Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
3 / 3 / 3
Регистрация: 14.11.2011
Сообщений: 63

Перебор подстановок с помощью циклов

11.12.2016, 15:52. Показов 772. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте если не сложно помогите с задачкой
желательно с помощью циклов
121хххххх9
надо создать все возможные варианты,"х" меняется от 0 до 9 но цифры 1,2,9
уже использоваться не могут и сами "х"-сы не должны повторяться
короче цифры не должны повторяться в одной строке 1,2 и 9 всегда остаются на своем месте
спасибо

Добавлено через 16 часов 31 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 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");
            }
что-то типа этого нет?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2016, 15:52
Ответы с готовыми решениями:

Перебор при помощи циклов
Добрый день, Господа, подскажите пожалуйста с помощью каких циклов или операторов можно сделать перебор: от 0000 до zzzz (по...

Перебор элементов массива без использования циклов
Здравствуйте, изучал эту тему, наткнулся на код function f_print($value, $key) { echo $key . ' =&amp;gt; ' . $value . '&lt;br&gt;'; ...

Рисунок с помощью циклов
Требуется вывести на экран данный рисунок с помощью циклов

7
3 / 3 / 3
Регистрация: 14.11.2011
Сообщений: 63
12.12.2016, 16:41  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 int scet = 0;
            int res = 0;
            for (int i = 100000; i < 999999; i++)
            {
 
                string str = Convert.ToString(i);
                for (int j = 0; j<1; j++)
                {
 
                    if ((str[0] == '1' || str[1] == '1' || str[2] == '1' || str[3] == '1' || str[4] == '1' ||
                        str[5] == '1' || str[0] == '2' || str[1] == '2' || str[2] == '2' || str[3] == '2' ||
                        str[4] == '2' || str[5] == '2' || str[0] == '9' || str[1] == '9' || str[2] == '9' ||
                        str[3] == '9' || str[4] == '9' || str[5] == '9') 
                        || (str[0] == str[1] || str[0] == str[2]
                        || str[0] == str[3] || str[0] == str[4] || str[0] == str[5]) || (str[1] == str[2]
                        || str[1] == str[3] || str[1] == str[4] || str[1] == str[5]) 
                        || (str[2] == str[3] || str[2] == str[4] || str[2] == str[5]) 
                        || (str[3] == str[4] || str[3] == str[5]) || (str[4] == str[5]))
                    {
                        continue;
                    }
                    scet++;
 
                    Console.WriteLine("121" + i + "9");
                    //Console.WriteLine(scet);
 
                }
            }
            Console.WriteLine(scet);
            Console.ReadLine();

Вот как то так )) зато работает сам сделал))
0
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
12.12.2016, 17:41
Как вариант, вот такой цикличный костыль
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
 
namespace CycleRush
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                if (i == 1 || i == 2 || i == 9) continue;
                for (int j = 0; j < 10; j++)
                {
                    if (j == i || j == 1 || j == 2 || j == 9) continue;
                    for (int k = 0; k < 10; k++)
                    {
                        if (k == i || k == j || k == 1 || k == 2 || k == 9) continue;
                        for (int n = 0; n < 10; n++)
                        {
                            if (n == i || n == j || n == k || n == 1 || n == 2 || n == 9) continue;
                            for (int m = 0; m < 10; m++)
                            {
                                if (m == i || m == j || m == k || m == n || m == 1 || m == 2 || m == 9) continue;
                                for (int l = 0; l < 10; l++)
                                {
                                    if (l == i || l == j || l == k || l == n || l == m || l == 1 || l == 2 || l == 9) continue;
                                    Console.WriteLine("121" + i + j + k + n + m + l + "9");
                                }
                            }
                        }
                    }
                }
            }
            Console.ReadKey();
        }
    }
}
0
3 / 3 / 3
Регистрация: 14.11.2011
Сообщений: 63
13.12.2016, 07:51  [ТС]
как думаешь лучше такое условие или так много циклов?
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 08:37
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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);
}
0
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
13.12.2016, 09:08
DoNNanaY, затрудняюсь ответить.
По условию желательно использование циклов, так что если это действительно важно, то цикличный вариант лучше (там циклов больше )
1
3 / 3 / 3
Регистрация: 14.11.2011
Сообщений: 63
13.12.2016, 09:39  [ТС]
Pikemaster, спасибо большое ))
TopLayer, а ваш вариант это с перестановкой строк? мне сказали что лучше всего использовать permutation
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 11:01
Цитата Сообщение от DoNNanaY Посмотреть сообщение
а ваш вариант это с перестановкой строк?
Нет.
Цитата Сообщение от DoNNanaY Посмотреть сообщение
мне сказали что лучше всего использовать permutation
Возможно он немного побыстрее, но и кода будет больше.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2016, 11:01
Помогаю со студенческими работами здесь

Фигура с помощью циклов...
Ребята всем здраствуйте, вот что, а с этими фигурами мой мозг взорвался Нид хэлп, Вывести на экран геометрическую фигуру размер которой...

Перебор в Edit с помощью while
Подскажите как сделать перебор в Edit с помощью цикла while? через цикл for не надо

С помощью циклов ввести буквы от A до Z
Здравсвуйте! Помогите пожалуйста. Можно ли с помощью циклов ввести буквы от A до Z? в массив размером 3X9. У меня не чего выходит,а...

Решение задач с помощью циклов
1. Около стены наклонно стоит палка длиной х м. Один ее конец находится на расстоянии y м от стены. Определить значение угла  между...

Банкомат с помощью массивов и циклов
есть 10 карточек. Сначала банкомат спрашивает номер карточки, а потом спрашивает сколько положить на нее. Потом надо вывести сумму на всех...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru