Salut, am si eu o problema si as vrea daca se poate sa mi-o explice cineva.
As vrea sa imi explice cineva cum se trece prin fiecare pas din problema.
De exemplu, pentru n=3. Ce se intampla in cod, cum functioneaza? cum circula 3-ul asta prin problema.
#include<iostream>
using namespace std;
const MAX=20;
int n,v[MAX];
int valid(int k);
int solutie(int k);
void afisare(int k);
void BK(int k);
int valid(int k)
{
int i;
for(i=1; i<k; i++)
if(v[i]==v[k])
return 0;
return 1;
}
int solutie(int k)
{
if(k==n)
return 1;
return 0;
}
void afisare(int k)
{
int i;
for(i=1; i<=k; i++)
cout<<v[i]<<"";
cout<<endl;
}
void BK(int k)
{
int i;
for(i=1; i<=n; i++)
{
v[k]=i;
if(valid(k))
{
if(solutie(k))
afisare(k);
else
BK(k+1);
}
}
}
int main()
{
cout<<"n=";
cin>>n;
BK(1);
return 0;
}