388
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.000nare 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