Professional Documents
Culture Documents
Marius
Tehnica BT
{
k=1 ;
init () ;
while (k>0)
{
as=1;ev=0;
while (as && !ev)
{
as= succesor () ;
if (as) ev= valid () ;
}
if (as)
if (solutie())
{cout<<"solutia "<<t+1<<endl;
tipar() ;
t++;
}
else {k=k+1;
init ();
}
else k=k-1 ;
}
}
int main ()
{int i;
cout<<"n=" ; cin>>n ;
for(i=1;i<=n;i++)
{
cout << "Dati cardinalul multimii" <<i <<endl ;
cin>>m[i] ;}
bt ();
return 0;
}
Tehnica BT
void bt()
{
k=1 ;
init () ;
while (k>0)
{
as=1;ev=0;
while (as && !ev)
{
as= succesor () ;
if (as) ev= valid () ;
}
if (as)
if (solutie())
{cout<<"solutia "<<t+1<<endl;
tipar() ;
t++;
}
else {k=k+1;
init ();
}
else k=k-1 ;
}
}
int main ()
{
cout<<"n=" ; cin>>n ;
cout <<"m=" ; cin >> m ;
bt ();
return 0;
}
Tehnica BT
void bt()
distincte
#include <iostream>
k=1;
#include <cmath>
init();
while(k>0)
int n,k,as,ev,s[100],t;
void init()
as=1;ev=0;
while(as&&!ev)
s[k]=0;
as=succesor();
int succesor()
if(as)
ev=valid();
if(s[k]<n)
if(as)
s[k]=s[k]+1;
if(solutie())
return 1;}
{cout<<"solutia numarul"<<t+1<<endl;
else return 0;
tipar();
}
int valid()
{
for(int i=1;i<k;i++)
if(s[k]==s[i] || abs(s[k]-s[i])==k-i)
return 0;
return 1;
t=t+1;
}
else {k=k+1;
init();
}
else k=k-1;
}
int solutie()
int main()
return k==n;
bt();
Tehnica BT
void tipar()
return 0;
for(int i=1;i<=n;i++)
cout<<"linia"<<i<<"si coloana"<<s[i]<<endl;}