Redaksiya
Bu məsələdə siz -dən -ə qədər olan ədədlərin bütün düzülmələrini yaratmalısınız. Bunu, məsələn, next_permutation funksiyasından istifadə edərək etmək olar.
Alqoritmin icrası
Düzülmələri yaratmaq üçün massivindən istifadə edin.
int m[10];
daxil olan dəyəri oxuyun.
scanf("%d",&n);
Massiv -i ilkin düzülmə ilə ilk indeksdən başlayaraq başlatın.
for (i = 1; i <= n; i++) m[i] = i;
next_permutation funksiyasından istifadə edərək bütün düzülmələri yaradın— leksikoqrafik ən kiçikdən leksikoqrafik ən böyüyə qədər.
do {
Hər yaradılan düzülməni ayrıca sətirdə çap edin.
for (i = 1; i <= n; i++) printf("%d ",m[i]); printf("\n"); } while (next_permutation(m + 1, m + n + 1));
Alqoritmin icrası — vektor
Düzülmələri yaratmaq üçün vektorundan istifadə edin.
vector<int> v;
daxil olan dəyəri oxuyun.
scanf("%d", &n);
Massiv -i ilkin düzülmə ilə sıfır indeksdən başlayaraq başlatın.
v.resize(n); for (i = 0; i < n; i++) v[i] = i + 1;
next_permutation funksiyasından istifadə edərək bütün düzülmələri yaradın— leksikoqrafik ən kiçikdən leksikoqrafik ən böyüyə qədər.
do {
Hər yaradılan düzülməni ayrıca sətirdə çap edin.
for (i = 0; i < n; i++) printf("%d ", v[i]); printf("\n"); } while (next_permutation(v.begin(), v.end()));