303
Cerința
Se citește un număr natural n
având cifrele diferite două câte două. Afișați în ordine crescătoare numerele care se pot obține din cifrele lui n
și care au același număr de cifre ca n
.
Date de intrare
Programul citește de la tastatură numărul n
.
Date de ieșire
Programul va afișa pe ecran numerele cerute, câte unul pe fiecare rând.
Restricții și precizări
1 ≤ n ≤ 1.000.000.000
n
are toate cifrele distincte
Exemplu
Intrare
483
Ieșire
348 384 438 483 834 843
#include <bits/stdc++.h> using namespace std; int n , m , a[30] , x[30] , p[30] , cnt; int afisare() { for(int i = 1 ; i <= cnt ; i++) cout << a[x[i]]; cout << '\n'; } void back(int k) { for(int i = 1 ; i <= cnt ; i++) if(!p[i]) { x[k] = i; p[i] = 1; if(k == 1 && a[i] == 0); else { if(k == cnt) afisare(); else back(k + 1); } p[i] = 0; } } int main() { cin >> n; while(n != 0) { a[++cnt] = n % 10; n /= 10; } sort(a + 1 , a + cnt + 1); back(1); }
Comentarii