Cerința
Se citesc două numere a și b. Să se afișeze, în ordine lexicografică, permutările mulțimii {a, a + 1, ..., b}.
Date de intrare
Programul citește de la tastatură numerele a b.
Date de ieșire
Programul va afișa pe ecran, fiecare pe câte o linie, permutările cerute. Elementele fiecărei permutări vor fi separate prin câte un spațiu.
Restricții și precizări
1 ≤ a < b ≤ 1.000.000.000
0 < b - a < 8
Exemplu
Intrare
4 6
Ieșire
4 5 6
4 6 5
5 4 6
5 6 4
6 4 5
6 5 4
Răspunsuri la întrebare
Răspuns de
2
Salut!
Ai rezolvarea in C++ mai jos
#include <iostream>
using namespace std;
int n, x[10], a, b;
void afisare()
{
for (int i = 1; i <= n; ++i)
{
cout << x[i] << " ";
}
cout << '\n';
}
bool valid(int k)
{
for (int i = 1; i < k; ++i)
{
if (x[i] == x[k])
{
return false;
}
}
return true;
}
void back(int k)
{
if (k > n)
{
afisare();
}
else
{
for (int i = a; i <= b; ++i)
{
x[k] = i;
if (valid(k))
{
back(k + 1);
}
}
}
}
int main()
{
cin >> a >> b;
n = b - a + 1;
back(1);
return 0;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă