Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int brR = 0;
- bool isAttacking(int *tabla, int k)
- {
- for (int i=0; i<k; i++)
- if ((tabla[i] == tabla[k]) || (abs(tabla[i]-tabla[k])) == (k-i))
- return false;
- return true;
- }
- void postaviQ(int *ploca, int val, int k = 0)
- {
- if (k != val)
- {
- for (int i=0; i<val; i++)
- {
- ploca[k] = i;
- if (isAttacking(ploca, k))
- postaviQ(ploca, val, k+1);
- }
- }
- else
- brR++;
- }
- int main(int argc, char *argv[])
- {
- int unos=0;
- if ((argc < 2) || (argc > 2))
- {
- do
- {
- cout << "Unesite dimenziju sahovske ploce[1-15]: " << endl;
- cin >> unos;
- if ((unos < 1) || (unos > 15))
- cout << "Preporucene dimenzije su od 1 - 15!" << endl;
- } while ((unos < 1) || (unos > 15));
- }
- else
- unos = atoi(argv[1]); // Preko argumenta
- cout << "Dimenzija sahovske ploce je: " << unos << "x" << unos << endl;
- int *tabla = new int[unos]; // Dinamicka alokacija niza
- postaviQ(tabla, unos);
- cout << "Ukupan broj mogucih rijesenja za datu dimenziju je: " << brR << endl;
- delete[] tabla; // mem leak
- brR = 0;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement