Построение магического квадрата нечетного порядка

Магический квадрат-таблица, заполненная числами от 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.
Теги:
квадрат
Добавлено: 21 Сентября 2013 01:51:20 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...