Advertisement
Guest User

Smertt

a guest
Mar 16th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.19 KB | None | 0 0
  1. program Fibbonachi;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. function CountIsAnswer(x, y: Integer; CoefY, CoefX: Integer; const N: Integer): Integer;
  6. begin
  7.    repeat
  8.       Result := CoefX * x + CoefY * y;
  9.       if Result = N then
  10.       begin
  11.          Result := 0;
  12.          Write(CoefX,' ', CoefY);
  13.       end;
  14.       Inc(CoefY);
  15.    until N > Result;
  16. end;
  17.  
  18.  
  19. type
  20.    TFibArr = array of Integer;
  21. var
  22.    N, AverageI: Int64;
  23.    i, j: Integer;
  24.    IsFind: Boolean;
  25.    FibArr: TFibArr;
  26. begin
  27.    Readln(N);
  28.    IsFind := False;
  29.    SetLength(FibArr, N div 2);
  30.    FibArr[0] := 1;
  31.    FibArr[1] := 1;
  32.    i := 2;
  33.    while N > FibArr[i] do
  34.    begin
  35.       FibArr[i] := FibArr[i - 1] + FibArr[i - 2];
  36.       Inc(i);
  37.    end;
  38.    i := 0;
  39.    while N > FibArr[i] do
  40.    begin
  41.       if N = FibArr[i] then
  42.       begin
  43.          Write('0 1');
  44.          IsFind := True;
  45.       end;
  46.       if FibArr[i] < N div 2 then
  47.          AverageI := i + 2;
  48.       Inc(i);
  49.    end;
  50.    i := AverageI;
  51.    while not IsFind do
  52.    begin
  53.       j := 0;
  54.       while  (i > j) do
  55.       begin
  56.          IsFind := (ord(IsFind) = CountIsAnswer(FibArr[i - 1], FibArr[i], 1, j, N));
  57.          Inc(j);
  58.       end;
  59.       Dec(i);
  60.    end;
  61.    Readln;
  62. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement