Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Заполнение массива по спирали числами из ряда Фибо

Автор: plafon 21.05.2004 15:05

Кто нибудь помогите


Заполнение массива по спирали числами из ряда Фибоначчи. Заполнить квадратную матрицу – массив NxN по спирали числами из ряда Фибоначчи. Результат вывести в файл. N – описывается в разделе описания констант.
Первые два числа ряда Фибоначчи равны 1 и 2, каждое следующее число вычисляется как сумма двух предыдущих. Приведем первые 9 членов ряда: 1,2,3,5,8,13,21,34,55…

Автор: BlackShadow 21.05.2004 15:34

Код

Function GetNext(Var a,b:Integer):Integer;
Var
 Result:Integer;
Begin
 Result:=a+b;
 a:=b;
 b:=Result;
 GetNext:=Result
End;                                {Ужасно выглядит}

Const
 N=5;

Var
 Matrix:Array[1..N,1..N] Of Integer;
 n1,n2,i,k,x,y,d:Integer;

Begin
 n1:=1;
 n2:=1;
 k:=n-1;
 x:=1;
 y:=1;
 d:=1;
 Matrix[1,1]:=1;
 Repeat
   For i:=1 To 3 Do
   Begin
     For j:=1 To k Do
     Begin
       Case d Of
         1:Inc(x);
         2:Inc(y);
         3:Dec(x)
         Else Dec(y)
       End;
       Matrix[x,y]:=GetNext(n1,n2)
     End;
     Dec(k);
     d:=(d+1) Mod 4
   End
 Until k=0;
 For j:=1 To N Do
 Begin
   For i:=1 To N Do
     Write(Matrix[i,j]);
   WriteLn
 End
End.

Ну, или что-то похожее...