Nhập vào số n và in ra ma trận xoắn ốc vd 16 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 Cách làm: cho dd:=1 dc:=1 cd:=1 cc:=1 i:=1; while i< sqr(n) do for i:= cd to cc-1 do for for for ( có 2 for tiến 2 for downto) HELP

1 câu trả lời

program b;
uses crt;
var n,i,j,s,t,k:integer;
Begin
    clrscr;
    write('n = ');readln(n);
    i:=1; t:=1; s:=n;
    for k:=1 to n*n do
    begin
        case t of
        1: j:=j+1;
        2: i:=i+1;
        3: j:=j-1;
        4: i:=i-1;
        end;
        gotoxy(j*3,i+2);
        write(k);
        if k=s then
        begin
            n:=n-(t mod 2);
            t:=t+1;
            s:=s+n;
            if t=5 then t:=1;
        end;
    end;
    readln
End.