33 lines
605 B
Plaintext
33 lines
605 B
Plaintext
$ include "seed7_05.s7i";
|
|
|
|
const func integer: fib (in integer: x) is func
|
|
result
|
|
var integer: fib is 0;
|
|
local
|
|
const func integer: fib1 (in integer: n) is func
|
|
result
|
|
var integer: fib1 is 0;
|
|
begin
|
|
if n < 2 then
|
|
fib1 := n;
|
|
else
|
|
fib1 := fib1(n-2) + fib1(n-1);
|
|
end if;
|
|
end func;
|
|
begin
|
|
if x < 0 then
|
|
raise RANGE_ERROR;
|
|
else
|
|
fib := fib1(x);
|
|
end if;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
local
|
|
var integer: i is 0;
|
|
begin
|
|
for i range 0 to 4 do
|
|
writeln(fib(i));
|
|
end for;
|
|
end func;
|