Перебрать все варианты перестановки - C#

  1. вот есть иверсная запись чисел, нужно в ней сделат ьперестановку например вводиш 3 а оно выводит 123 132 231 213 312 321


textual

Код к задаче: «Перебрать все варианты перестановки - C#»

using System;
using System.Collections.Generic;
using System.Linq;
 
namespace Algorithms
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int[] r = Enumerable.Range(1, n).ToArray();
            do Console.WriteLine(string.Join(" ", r)); while (NextPermutation(r));
            Console.ReadKey();
        }
 
        static bool NextPermutation<T>(IList<T> a) where T : IComparable<T>
        {
            if (a.Count < 2) return false;
            var k = a.Count - 2;
 
            while (k >= 0 && a[k].CompareTo(a[k + 1]) >= 0) k--;
            if (k < 0) return false;
 
            var l = a.Count - 1;
            while (l > k && a[l].CompareTo(a[k]) <= 0) l--;
 
            var tmp = a[k];
            a[k] = a[l];
            a[l] = tmp;
 
            var i = k + 1;
            var j = a.Count - 1;
            while (i < j)
            {
                tmp = a[i];
                a[i] = a[j];
                a[j] = tmp;
                i++;
                j--;
            }
 
            return true;
        }
    }
 
}

СДЕЛАЙТЕ РЕПОСТ

9   голосов, оценка 4.556 из 5



Похожие ответы
  1. Допустим я считал в переменную выбранный класс другого проекта C#, а как вывести список всех его переменных и методов в textBox?

  1. Вывести все простые числа от M до N включительно. Ввод В первой строке находятся разделённые пробелом M и N. Вывод Вывести числа в порядке возрастания, по одному в строке. Если между M и N включительно нет простых - вывести "Absent". помоги разобрать задачу по программированию

  1. Переместить все файлы , кроме определённых 3 файлов в папку "C:\Очистка рабочего стола\Все файлы\1" ? Вообще это весь вопрос

  1. Здравствуйте, документ состоит из объектов с тегом (Их много). Мне необходимо выписать все значения атрибутов name С XML работать не умею, заранее спасибо.XML1 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62               Недвижимость         ООО    
                ПРЕЖДЕ ЧЕМ ПРЕДПРИНИМАТЬ КАКИЕ ЛИБО ДЕЙСТВИЯ Наименование оборудования: CCU 6225  
                                                                 

    1. Здравствуйте. Нужна помощь. Как поставить точку после перечисления всех символов. К примеру есть вот такой код. Он ищет все русские символы и ставит после каждого запятую.

    1. Задача не проходит все тесты. Пример, указанный в условии работает, а потом тестировщик пробует еще несколько различных вариантов входных данных. Какой вариант не сработал, он не показывает. Помогите пожалуйста разобраться, какие условия в моем коде не соблюдены. Условие задачи: Кликните здесь для просмотра всего текста Телефонная книга ограничение по времени на тест2 секунды ограничение по памяти на тест256 мегабайт вводstdin выводstdout Вам дана телефонная книга в виде последовательности пар строк. Первая строка — имя абонента, вторая — его номер. Телефон может быть в одном из форматов: +7xxxxxxxxxx (ровно 11 цифр, «x» — любая цифра); 8xxxxxxxxxx (ровно 11 цифр, «x» — любая цифра); xxxxxxx (ровно 7 цифр, «x» — любая цифра). Кроме цифр в произвольные позиции телефонных номеров могут быть вставлены дефисы и скобки. Например, телефон «+7(917)100-00-00» считается корректным. Требуется упорядочить телефонную книгу, используя следующие правила: объедините контакты с одинаковыми именами (регистр букв имеет значение); приведите все телефоны к одной записи вида «+7xxxxxxxxxx» (ровно 11 цифр, без дополнительных символов), при этом если телефон соответствует третьему формату, то добавьте в начало префикс «+7495»; удалите дубликаты в списке телефонов каждого абонента; при обработке пропустите записи из книги, в которых телефон не подходит ни под один из указанных форматов.Входные данные Входные данные состоят из набора пар строк, где первая строка означает имя, а вторая — номер телефона. Имя — это непустая последовательность заглавных и строчных латинских букв и пробелов. Имя не может начинаться или заканчиваться пробелом. Телефон — это непустая последовательность из цифр, скобок и знаков «+» и «-». Входные данные состоят не более чем из 1000 строк.Выходные данные Выведите телефонную книгу в виде последовательность пар строк, в первой строке выведите имя абонента, во второй — список телефонов в лексикографическом порядке, относящихся к этому абоненту. Для каждого из абонентов его список телефонов не должен содержать дубликатов. Описания абонентов выводите в лексикографическом порядке их имен. Если для абонента в записной книжке не указано ни одного корректного номера, то выводить его не следует. Примеры из условия задачи(они отработали): Кликните здесь для просмотра всего текста входные данные Vincent van Gogh +79170123456 Archimedes 8(911)321-85-85 Vincent van Gogh 321-85-85 Vincent van Gogh 18238585 George Washington +7-(919)-01-23-4-5-6 Peter 8выходные данные Archimedes +79113218585 George Washington +79190123456 Vincent van Gogh +74953218585 +79170123456 Код программы, реализованной мной на C#:

    1. Привет, есть код читаем почту перелистываем все письма в почте и записываем в текстовый файл, в тхт всегда последнее письмо , как это исправить ? перед этим как писать тему искал на форуме и в гугле , увы нечего не нашел : ( (либо же не понял толком )

    1. Здравствуйте. Есть код, который "обходит" все файлы и директории и пути к ним записывает в файл Но почему то записывается фиксированное и неполное количество информации Вот код : Кликните здесь для просмотра всего текста

    1. Здравствуйте! Интерисует такой вопрос, как можно выводить графику на экран, не в область окна приложения, а поверх всего. К примеру, как нарисовать линию или вывести изображение. Заранее спасибо.