em có code của bài toán 8 quân hậu nhưng đọc mãi mà không hiểu, mong các bác giúp cho: em không hiểu ở chổ là tại sao cheoxuoi[i+j] và cheonguoc[i-j=7].Thêm một điều nữa là kết quả bài toàn in ra màn hình khi thực thi chương trình nhìn không hiểu gì hết?
mong các anh chỉ giúp!!!!!!!!cám ơn các anh nhiều!!!!!!!!!!!
/* Bai toan tam hoang hau */
#include <stdio.h>
#include<conio.h>
int dong[8], cot[8], cheoxuoi[15], cheonguoc[15];
int socach = 0;
void print ()
{
int i;
printf("\n");
if (socach %5==0)
getch();
for (i=0; i<8; i++)
{
printf("%3d", dong[i]);
}
}
void thu(int i)
{
int j;
for (j=0; j<8; j++)
{
if (cot[j] == 1 && cheoxuoi[i+j] ==1 && cheonguoc[i-j+7] == 1)
{
dong[i] = j;
cot[j] = 0;
cheoxuoi[i+j] = 0;
cheonguoc[i-j+7] = 0;
if (i<7)
thu(i+1);
else
{
print();
socach++;
}
cot[j] = 1;
cheoxuoi[i+j] = 1;
cheonguoc[i-j+7] = 1;
}
}
}
void tim()
{
int i, q;
for (i=0; i<8; i++)
{
cot[i] = 1;
dong[i] = -1;
}
for (i=0; i<15; i++)
{
cheoxuoi[i] = 1;
cheonguoc[i] = 1;
}
thu(0);
}
void main()
{
tim();
getch();
}
Bookmarks