Informatică, întrebare adresată de carmenruxandraoyya3n, 9 ani în urmă

Cerinţa ( în C++) (problema 123 de pe pbinfo)
Se citeşte un număr natural nenul n. Să se afişeze, în ordine lexicografică, permutările mulţimii {1,2,..,n}.
Date de intrare
Fişierul de intrare permutari.in conţine pe prima linie numărul n.
Date de ieşire
Fişierul de ieşire permutari.out va conţine pe fiecare linie elementele unei permutări, separate prin câte un spaţiu.
Restricţii şi precizări
0 < n < 9


Exemplu
permutari.in
3
permutari.out
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

Răspunsuri la întrebare

Răspuns de adionica15ozobcq
4
#include<fstream> using namespace std; ifstream f("permutari.in"); ofstream g("permutari.out"); int x[20],n; void scrie() { for(int i=1; i<=n; i++) g<<x[i]<<' '; g<<endl; } int conditie(int k) { for(int i=1; i<=k-1; i++) if (x[i]==x[k]) return 0; return 1; } void permutari(int k) { for(int i=1; i<=n; i++) { x[k]=i; if (conditie(k)) if(k==n) scrie(); else permutari(k+1); } } int main() { f>>n; permutari(1); return 0; }
Alte întrebări interesante