Console.WriteLine(" (k)");
int k = int.Parse(Console.ReadLine());
Console.WriteLine("(n)");
int n = int.Parse(Console.ReadLine());
int[] x = new int[k];
for (int i = 0; i < k; i++)
{
x = i + 1;
Console.Write(x + " ");
}
Console.WriteLine();
int s = 0;
while (true)
{
s = k - 1;
while (!(x < n - k + s + 1))
{
s--;
if (s == -1)
break;
}
if (s == -1)
break;
x = x + 1;
for (int i = s + 1; i < k; i++)
{
x = x[i - 1] + 1;
}
for (int i = 0; i < k; i++)
{
Console.Write(x);
}
Console.WriteLine();
}
Перестановки C#
ны k из чисел 1..n в лексикографическом порядке.
(Пример: при n=5, k=2 получаем 12 13 14 15 23 24 25 34 35 45.)
вот решения,кто видеть ошибки исправьте :
Код:
помогите решить предыдущие задачу, заменив лексикографи-
ческий порядок на обратный (раньше идут те, которые больше в
лексикографическом порядке).
насчет ошибок, одна весьма очевидна - не информативное название темы, поменяйте пожалуйста на более конкретное, типа перестановки в лексикографическом порядке ...
а насчет кода, во первых конкретизируйте вопрос, что вызывает проблемы конкретно? во вторых, в коде не видно не одного комментария. думаете много таких людей, кому делать нечего чужой код читать и догадываться, что человек хотел сделать, а что на самом деле получилось? операции ввода k & n точно уж можно не писать, если у вас с этим проблема - смотрите в учебнике. проблема я так понимаю в алгоритме генерации этих самых перестановок, вот и конкретизируйте вопрос, опишите ваш алгоритм и т.д. тогда больше шансов ответ получить.