Skip to content

Instantly share code, notes, and snippets.

@eugeneai
Created February 11, 2015 01:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eugeneai/06c9bf1a1c969e9f0024 to your computer and use it in GitHub Desktop.
Save eugeneai/06c9bf1a1c969e9f0024 to your computer and use it in GitHub Desktop.
program fibnums;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
MaxVecLen=1024;
Type
TVec = Array [1..MaxVecLen] of int64;
{ 1, 1, 2, 3, 5, . . . .}
function input_last_number():integer;
var
n:integer;
begin
write('Enter index of the lat number:');
readln(n);
input_last_number:=n;
end;
procedure generate(n:integer; var nums:TVec);
var
i:integer;
begin
nums[1]:=1;
nums[2]:=1;
if n<0 then
begin
writeln('Check the input of the procedure: n must be greater or equal to 0!');
exit;
end;
if n<=2 then exit;
for i:=3 to n do
begin
nums[i]:=nums[i-1]+nums[i-2];
end;
end;
procedure print_vec(nums:TVec; n:integer);
var
i:integer;
begin
if n<0 then
begin
exit;
end;
if n=0 then
begin
writeln('The result sequence is empty!');
exit;
end;
writeln('The result is as follows:');
for i:=1 to n do
begin
write(nums[i]);
if i<n then write(', ');
end;
writeln;
end;
procedure print_div(nums:TVec; n:integer);
var
i:integer;
begin
for i:=2 to n do
begin
writeln((nums[i-1]/nums[i]):30:28);
end;
end;
{
a/b = b/(a+b)
}
var
n:integer;
nums:TVec;
begin
{ TODO -oUser -cConsole Main : Insert code here }
n:=input_last_number();
generate(n, nums);
print_vec(nums, n);
writeln;
print_div(nums, n);
readln;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment