Contributor: JUD MCCRANIE
{
Fibonacci for longints and comps, GCD for longint, plus LCM
Jud McCranie
jud.mccranie@camcat.com
================================================
}
function Fibonacci( n : word) : longint;
{ Fibonacci numbers, by Jud McCranie. }
var i : word;
 f1, f2, fib : longint;
begin { ----- fibonacci ----- }
if n> 46 then
begin
 writeln( 'In Fibonicci - N is too large for a longint');
 halt;
end;
fib := 1;
f1 := 1;
f2 := 1;
for i := 3 to n do
begin
 fib := f1 + f2;
 f2 := f1;
 f1 := fib;
end;
Fibonacci := fib;
end; { ----- fibonacci ----- }
function FibonacciComp( n : word) : comp;
{ Fibonacci numbers, by Jud McCranie. }
var i : word;
 f1, f2, fib : comp;
begin { ----- fibonacci comp ----- }
if n> 92 then
begin
 writeln( 'In Fibonicci - N is too large for a comp');
 halt;
end;
fib := 1.0;
f1 := 1.0;
f2 := 1.0;
for i := 3 to n do
begin
 fib := f1 + f2;
 f2 := f1;
 f1 := fib;
end;
FibonacciComp := fib;
end; { ----- fibonacci comp ----- }
-------------------------------------------------
function GCD( u, v : LongInt) : LongInt;
{ Greatest Common Divisor, by Jud McCranie }
var t : LongInt;
begin { --- gcd --- }
while v  0 do
begin
 t := u mod v;
 u := v;
 v := t;
end;
GCD := u;
end; { --- GCD --- }
function LCM( x, y : LongInt) : LongInt;
{ Least Common Multiple, by Jud McCranie }
begin { --- lcm --- }
LCM := (x div GCD( x, y)) * y;
end; { --- LCM --- }
Jud McCranie
 * Silver Xpress V4.02B03P SW20178


AltStyle によって変換されたページ (->オリジナル) /