367
Cerința
Se citesc un număr natural n având cifrele diferite două câte două și o cifră c. Afișați în ordine descrescătoare numerele formate din c cifre distincte care se pot obține din cifrele lui n și care au cifrele ordonate crescător.
Date de intrare
Programul citește de la tastatură numele n și c.
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,1 < c < 9nare cifrele distincteceste mai mic decât numărul de cifre ale luin
Exemplu
Intrare
4618 3
Ieșire
468 168 148 146
#include <bits/stdc++.h>
using namespace std;
int n , m , x[30] , cnt , p[30] , c , a[30];
int afisare()
{
for(int i = 1 ; i <= c ; i++)
cout << a[x[i]];
cout << '\n';
}
void back(int k)
{
for(int i = cnt; i >= x[k - 1] + 1 ; i--)
{
x[k] = i;
if(k == 1 && a[i] == 0);
else
{
if(k == c) afisare();
else back(k + 1);
}
}
}
int main()
{
cin >> n >> c;
while(n != 0)
{
a[++cnt] = n % 10;
n /= 10;
}
sort(a + 1 , a + cnt + 1);
back(1);
}
Comentarii