Mình viết code chắc có bạn không hiểu. Mình có lời giải thích bổ sung:
** LƯU Ý :
Chương trình này dung thuật toán Đệ qui có quay lui dựa trên phương pháp thử và sai như sau:
BƯỚC 1:
- Khởi tạo giá trị ban đầu cho 3 mảng a[]- xét hàng ,b[]- xét theo đường chéo song song với đường chéo chính của ma trận 2 chiều,c[]-song song với đường chéo phụ .
- Ta dùng mảng x[] để lưu vị trí của con hậu.
BƯỚC 2 :
- Hàm TRY(i)
*Nếu i<8 cho j chạy từ 1 đến 8 . Nếu (a[j]==0)&&(b[i+j])&&(c[i-j]==0) thì đặt con HẬU tại vị trí j.
Khi đó a[i]=1;b[i+j]=1;c[i-j]=1;
Gọi đệ qui TRY(i+1).Lúc này a[i]=0;b[i+j]=0;c[i-j]=0;
*Ngược lại xuất ra kết quả.