private static int[] NQueenProblem(int N)
{
int[] dizi=new int[N];
int kalan = N % 12;
int control = 0;
int bir_index = 0, uc_index = 0, bes_index = 0;
for (int i = 2; i <= N; i+=2)
{
dizi[control] = i;
control++;
}
if (kalan == 9 || kalan == 3)
{
for (int i = 0; i < control-1; i++)
{
dizi[i] = dizi[i + 1];
}
dizi[control-1] = 2;
}
for (int i = 1; i <= N; i += 2)
{
dizi[control] = i;
control++;
}
if (kalan == 2)
{
// 1 ve 3 un yerını degis, 5 i liste sonuna al
for (int i = 0; i < control; i++)
{
if (dizi[i] == 1)
{
bir_index = i;
}
else if (dizi[i] == 3)
{
uc_index = i;
}
else if (dizi[i] == 5)
{
bes_index = i;
}
}
dizi[bir_index] = 3;
dizi[uc_index] = 1;
for (int i = bes_index; i < control-1; i++)
{
dizi[i] = dizi[i + 1];
}
dizi[control - 1] = 5;
}
if (kalan == 3 || kalan == 9)
{
// 1 ve 3 u liste sonuna al
for (int i = 0; i < control; i++)
{
if (dizi[i] == 1)
{
bir_index = i;
}
else if (dizi[i] == 3)
{
uc_index = i;
}
}
for (int i = bir_index; i < control - 1; i++)
{
dizi[i] = dizi[i + 1];
}
dizi[control - 1] = 1;
for (int i = uc_index; i < control - 1; i++)
{
dizi[i] = dizi[i + 1];
}
dizi[control - 1] = 3;
}
return dizi;
}
Hiç yorum yok:
Yorum Gönder