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;
Ответить
Пожаловаться