Page 78 - C:\Users\Admin\Desktop\Sach mem upweb\
P. 78
100 Problems & Solutions Trang 78
Có rất nhiều cách xếp. Sau đây là một vài cách để các bạn tham khảo:
0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0
Để tìm hết nghiệm của bài này chúng ta phải sử dụng thuật toán Đệ quy - Quay lui. Sau
đây là chương trình, chạy ra 92 nghiệm và ghi các kết quả đó ra file HAU.OUT.
{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q+,R+,S+,T-,V+,X+}
{$M 16384,0,655360}
uses crt;
const fo = 'hau.out';
n = 8;
var A : array[1..n,1..n] of byte;
c : array[1..n] of byte;
dc1 : array[2..2*n] of byte;
dc2 : array[1-n..n-1] of byte;
sn : integer;
f : text;
procedure ghino;
var i,j : byte;
begin
inc(sn);
writeln(f,'Nghiem thu ',sn,' la :');
for i := 1 to n do
begin
for j := 1 to n do
write(f,A[i,j],#32);
writeln(f);
end;
writeln(f);
end;
procedure vet(i : byte);
var j : byte;
begin
if i = n+1 then
begin
Tin học & Nhà trường 100 Đề Toán - Tin học