Răspuns :
Te pot ajuta trimitandu-ti sursa mea la problema regine1. Incearca s-o analizezi pas cu pas ca sa vezi unde gresesti. Succes!
#include <bits/stdc++.h>
using namespace std;
int n, x[20];
bool gasit;
bool cont(int k)
{
for(int i = 1 ; i < k ; i ++)
{
if(x[i] == x[k]) return false;
if(k - i == abs(x[k] - x[i])) return false;
}
return true;
}
void afisare(int n)
{
gasit = true;
for(int i = 1 ; i <= n ; i ++)
{
for(int j = 1 ; j <= n ; j ++)
if(x[j] == i) cout << "* ";
else cout << "- ";
cout << "\n";
}
}
void back(int k)
{
for(int i = 1 ; !gasit && i <= n ; i ++)
{
x[k] = i;
if(cont(k))
if(k == n) afisare(n);
else back(k + 1);
}
}
int main()
{
cin >> n;
back(1);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int n, x[20];
bool gasit;
bool cont(int k)
{
for(int i = 1 ; i < k ; i ++)
{
if(x[i] == x[k]) return false;
if(k - i == abs(x[k] - x[i])) return false;
}
return true;
}
void afisare(int n)
{
gasit = true;
for(int i = 1 ; i <= n ; i ++)
{
for(int j = 1 ; j <= n ; j ++)
if(x[j] == i) cout << "* ";
else cout << "- ";
cout << "\n";
}
}
void back(int k)
{
for(int i = 1 ; !gasit && i <= n ; i ++)
{
x[k] = i;
if(cont(k))
if(k == n) afisare(n);
else back(k + 1);
}
}
int main()
{
cin >> n;
back(1);
return 0;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!