![]() |
#18 |
Участник
|
Не, программку не осилил.
Вот есть вариант, авторство не мое (код на С++): 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]); } } |
|