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
   73   74   75   76   77   78   79   80   81   82   83