INT FUNC Fibonacci(INT n) INT curr,prev,tmp IF n>=-1 AND n<=1 THEN RETURN (n) FI prev=0 IF n>0 THEN curr=1 DO tmp=prev prev=curr curr==+tmp n==-1 UNTIL n=1 OD ELSE curr=-1 DO tmp=prev prev=curr curr==+tmp n==+1 UNTIL n=-1 OD FI RETURN (curr) PROC Main() BYTE n INT f Put(125) ;clear screen FOR n=0 TO 22 DO f=Fibonacci(n) Position(2,n+1) PrintF("Fib(%I)=%I",n,f) IF n>0 THEN f=Fibonacci(-n) Position(21,n+1) PrintF("Fib(%I)=%I",-n,f) FI OD RETURN