Files
harbour-core/harbour/tests/fib.prg
1999-10-04 18:46:41 +00:00

45 lines
568 B
Plaintext

//
// $Id$
//
Function Main()
Local n
For n := 1 To 20
QOut( FibR( n ) )
QOut( FibI( n ) )
Next
Return( NIL )
Function FibR( n )
Local nFib
If n < 2
nFib := n
Else
nFib := FibR( n - 2 ) + FibR( n - 1 )
EndIf
Return( nFib )
Function FibI( n )
Local nFibMin1 := 1
Local nFibMinN1 := 0
Local i := 1
Local nFib
If n < 2
nFib := n
Else
Do While i < n
nFib := nFibMin1 + nFibMinN1
nFibMinN1 := nFibMin1
nFibMin1 := nFib
++i
EndDo
EndIf
Return( nFib )