Сообщение от
kashperuk
Не, программку не осилил.
Вот есть вариант, авторство не мое (код на С++):
X++:
#include <algorithm>
#include <iostream>
using namespace std;
int A[20];
int n = 4;
int main()
{
int nf = 1;
int i,j;
for(i = 2; i <= n; ++i) nf *= i;
for(i = 0; i < n; ++i) A[i] = i + 1;
for(i = 0; i < nf; ++i)
{
for(j = 0; j < n; ++j) cout<<A[j];
cout<<endl;
int jp = 0;
for(j = 0; j < n - 1; ++j) if (A[j] < A[j+1]) jp = j;
int tp = 0;
for(j = n - 1; j >= 0; --j) if (A[j] > A[jp]) { tp = j; break; }
swap(A[jp], A[tp]);
for(j = 0; j < (n - jp) / 2; ++j) swap(A[jp + 1 + j], A[n - 1 - j]);
}
}
Единственное, что я не уверен, можно ли несколько вложенных циклов иметь уровня вложенности = 1..