[Tin] Bài tập tin học của p_trk

1

11thanhkhoeo

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Mã:
var a: array[1..3, 1..3] of integer;
var x: array[1..9] of boolean;
var sumrow, sumcol: array[1..3] of integer;
dem:integer;
function checksum:boolean;
    var i  :byte;
    begin  checksum :=true;
       for i:= 1 to 3 do
          begin

             if sumrow[i]<>15 then checksum:= false;
             if sumcol[i]<>15 then checksum:= false;
          end;
    end;
procedure writeout;
   var i,j:byte;
   begin
   dem:=dem+1;
   writeln;
   write(dem);
   writeln;
      for i := 1 to 3 do
        begin
           for j := 1 to 3 do
              write(a[i,j]:3);
              writeln;
        end;
   end;

procedure DeQuy(row, col: integer);
var i: integer;
begin
  if (col > 3) then
    begin
        col := 1;
        row := row + 1;
    end;
  if (row > 3) then
    begin
        if CheckSum then WriteOut;
        exit;
    end;
    for i := 1 to 9 do
      begin
        if not x[i] then begin
            x[i] := true;
            a[row, col] := i;
            sumrow[row] := sumrow[row] + i;
            sumcol[col] := sumcol[col] + i;
            if (sumrow[row] <= 15) and (sumcol[col] <= 15) then {// dây là c?n    }
                DeQuy(row, col + 1);
            x[i] := false;
            sumrow[row] := sumrow[row] - i;
            sumcol[col] := sumcol[col] - i;
        end;
    end;
end;
Begin
    fillchar(x, sizeof(x), false);
    fillchar(sumrow, sizeof(sumrow), 0);
    fillchar(sumcol, sizeof(sumcol), 0);
    DeQuy(1, 1);
    readln;

End.
p_trk nhé
 
Top Bottom