nickzinov

Зарегистрирован с 22.05.2020
Комментарии
22 мая 2020

Если надо сразу выводить змейку на печать, без массива, то придётся малость посчитать. Старый добрый Pascal/Delphi

for j:=1 to n do begin
  for i:=1 to n do begin
    z:=min(i,min(j,min(n+1-i, n+1-j))); //высота ступеньки пирамиды
    m:=n+2-2*z; //длина стороны внутреннего квадрата
    s:=n*n-m*m; //площадь нижних ступенек = начало оборота змейки
    if j=z then
      s:=s+i-z+1 //верх
    else if i=n-z+1 then
      s:=s+m+j-z //право
    else if j=n-z+1 then
      s:=s+3*m-i+z-2 //низ
    else
      s:=s+4*m-j+z-3; //лево
    write(s:4)
  end;
  writeln;
end;
Ответить