Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2012, 22:56   #1
BloodyBlade
 
Регистрация: 24.09.2011
Сообщений: 7
По умолчанию Все перестановки в антилексикографическом порядке

Здравствуйте! Помогите пожалуйста выполнить следующее задание:
Цитата:
Напечатать все перестановки чисел 1..n в антилексикографическом порядке(то есть последовательности длины n, в которые каждое из чисел 1..n входит по одному разу).
У меня есть код, написанный на C, а мне бы надо перевести его в pascal. Вот код:
Код:
#include <stdio.h>

#define N 4

void swap(int *a, int *b)
{
int t;

t=*a;
*a=*b;
*b=t;
}

void reverse(int * P,int m)
{
int i=0, j=m;
while(i<j)
{
swap(&P[i], &P[j]);
++i;
--j;
}
}

void antilex(int * P,int m)
{
int i;

if(m==0)
{
for(i=0; i<N; ++i)
printf("%d ",P[i]);
printf("\n");
}
else
{
for(i=0; i<=m; ++i)
{
antilex(P,m-1);
if(i<m)
{
swap(&P[i], &P[m]);
reverse(P,m-1);
}
}
}
}

int main()
{
int i;
int P[N];

for(i=0; i<N; ++i)
P[i] = i+1;

antilex(P,N-1);

return 0;
}
Помогите, пожалуйста, буду очень благодарен.
BloodyBlade вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
генерация следующей перестановки в лексикографическом порядке. Dimanw92 Паскаль, Turbo Pascal, PascalABC.NET 3 26.09.2011 23:19
Дано n вещественных чисел. Напечатать все перестановки. Рекурсивная функция на Си sometimes_elen Помощь студентам 0 19.05.2011 22:39
перебрать все варианты перестановки строк sv_mix Помощь студентам 2 26.07.2008 17:48