1. Să se genereze toate codurile de lungime n morse formate din '.' şi '-' astfel încât să nu existe două puncte alăturate.
#include<iostream>2. Sa se aranjeze 8 regine pe tabla de şah astfel încât acestea să nu se atace. Două regine se atacă dacă sunt situate pe aceeaşi coloană, rând sau diagonală.
using namespace std;
char x[100];
int n,nr=0;
int verif(int i)
{if(i>1 && x[i]=='.' && x[i-1]=='.')
return 0;
else return 1;
}
void back(int i)
{char j;
for(j='-';j<='.';j=j+'.'-'-')
{x[i]=j;
if(verif(i))
if(i==n)
{ cout<<x+1<<endl;nr++;}
else back(i+1);
}
}
int main()
{cin>>n;
x[n+1]=NULL;
back(1);
cout<<endl<<nr<<" solutii";
}
#include<iostream>
using namespace std;
int r[10],nr=0;
void afisare()
{int i,j;
nr++;
for(i=1;i<9;i++)
{for(j=1;j<9;j++)
if(r[i]==j)
cout<<'.';
else cout<<'X';
cout<<endl;}
cout<<endl;}
int verif(int i)
{int j;
for(j=1;j<i;j++)
if(r[i]==r[j])
return 0;
for(j=1;j<i;j++)
if(abs(r[i]-r[j])==abs(i-j))
return 0;
return 1;
}
void back(int i)
{int j;
for(j=1;j<9;j++)
{r[i]=j;
if(verif(i))
if(i==8)
afisare();
else back(i+1);
}
}
int main()
{
back(1);
cout<<endl<<nr<<" solutii";
}