Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Задача про спираль )


Автор: IBS 4.11.2009, 15:32
получить квадратную матрицу порядка 7, элементами которой являются числа 1,2,3,4,......,49  расположенные в ней по спирали.

типа так:
123
894
765
тока длина строки 7

Я решал раньше, но там длину строки задавал с клавы, однако решение у меня листа на 4 чистого кода, а если ещё блок схему катать, то вообще вешайся))))
Короче знает кто более-менее рациональное решение?

Автор: Keeper89 4.11.2009, 20:08
IBS, в Интернете полно решений, и на Винграде тоже есть smile : http://forum.vingrad.ru/index.php?showtopic=166088&view=findpost&p=1214030

З.Ы. Внизу есть три ссылки, зачем создавать еще темы?  smile 

Автор: THandle 5.11.2009, 15:28
Задачка на спираль была одной из задач в нашем прошлогоднем конкурсе... Решений достаточно:

http://forum.vingrad.ru/index.php?showtopic=231619&view=findpost&p=1678005

Автор: IBS 5.11.2009, 19:35
Цитата

Решений достаточно:

Там все решения очень грамоздкие, такое я и сам написал, вот офигенно решение:
Код

uses crt;
const
 n=10;
var
  i,j,di,dj,k,t:integer;
  a: array[1..n,1..n] of integer;
begin
i:=1; j:=0; di:=0; dj:=1;
for k:=1 to n*n do
  begin
  if (i+di<1) or (n<i+di) or (j+dj<1) or (n<j+dj) or (a[i+di,j+dj]<>0) then
    begin t:=di; di:=dj; dj:=-t; end;
  i:=i+di; j:=j+dj; a[i,j]:=k;
  end;
end.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)