Построение магического квадрата нечетного порядка
Магический квадрат-таблица, заполненная числами от 1 до таким образом, что сумма чисел во всех строках, столбцах и диагоналях одинакова.
Почему только нечетного порядка? Во-первых, потому что способы построений различны в зависимости от n. А во-вторых, потому что это самый простой вариант, и его чаще всего просят сделать
var
n,v,x,y,i,j:integer;
a:array[0..15,0..15] of integer;
begin
readln(n); {порядок матрицы, n должно быть нечетным}
v:=n div 2;
for i:=0 to n-1 do
for j:=0 to n-1 do
begin
x:=i+j-v;
y:=i-j+v;
if (x<0) then inc(x,n) else
if (x>=n) then dec(x,n);
if (y<0) then inc(y,n) else
if (y>=n) then dec(y,n);
a[y,x]:=i*n+j+1;
end;
for y:=0 to n-1 do
begin
for x:=0 to n-1 do
write(a[y,x]:4);
writeln;
end;
readln
end.
Комментарии:
Нету комментариев для вывода...