Informatică, întrebare adresată de Ottaotta12345, 8 ani în urmă

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 Sergetec
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