mirror of
https://github.com/vishapoberon/oberonbyexample.git
synced 2026-04-05 21:02:25 +00:00
recursion example
This commit is contained in:
parent
d110fb0ac8
commit
9bcdd6db33
2 changed files with 64 additions and 0 deletions
33
recursion/Fib.Mod
Normal file
33
recursion/Fib.Mod
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
MODULE fibonacci;
|
||||
|
||||
|
||||
IMPORT Out, Modules;
|
||||
|
||||
|
||||
VAR
|
||||
n : LONGINT;
|
||||
Arg0 : LONGINT;
|
||||
|
||||
|
||||
PROCEDURE getFib (n : LONGINT) : LONGINT;
|
||||
VAR result : LONGINT;
|
||||
BEGIN
|
||||
IF n = 0 THEN
|
||||
result := 0
|
||||
ELSIF n = 1 THEN
|
||||
result:= 1
|
||||
ELSE
|
||||
result := getFib(n-1) + getFib(n-2)
|
||||
END;
|
||||
RETURN result
|
||||
END getFib;
|
||||
|
||||
|
||||
BEGIN
|
||||
IF Modules.ArgCount # 2 THEN
|
||||
Out.String("one argument needed"); Out.Ln;
|
||||
HALT(1);
|
||||
END;
|
||||
Modules.GetIntArg(1, Arg0);
|
||||
Out.Int(getFib(Arg0), 0); Out.Ln;
|
||||
END fibonacci.
|
||||
Loading…
Add table
Add a link
Reference in a new issue