Pascal

Modified: Wednesday, 22-12-2021 07:00 AM

Ma trận vuông có dạng:

nhap so n: 10
    1    2    6    7   15   16   28   29   45   46

    3    5    8   14   17   27   30   44   47   64

    4    9   13   18   26   31   43   48   63   65

   10   12   19   25   32   42   49   62   66   79

   11   20   24   33   41   50   61   67   78   80

   21   23   34   40   51   60   68   77   81   90

   22   35   39   52   59   69   76   82   89   91

   36   38   53   58   70   75   83   88   92   97

   37   54   57   71   74   84   87   93   96   98

   55   56   72   73   85   86   94   95   99  100
 


var a:array[1..100,1..100] of integer;
    n,i,j:integer;
begin
    write('nhap n: ');readln(n);
    for i:=1 to n do
        for j:=1 to n+1-i do
    begin
        a[i,j]:=(i+j-1)*(i+j-2) div 2;
        if (i+j) mod 2 =0 then 
            a[i,j]:=a[i,j]+j 
        else a[i,j]:=a[i,j]+i;
        a[n+1-i,n+1-j]:=n*n+1-a[i,j];
    end;
    for i:=1 to n do
    begin
        for j:=1 to n do write(a[i,j]:4);
            writeln;
    end;
    readln;
end.