Fibonacci sequence: Difference between revisions

Content deleted Content added
add E example
Line 164:
===Recursive===
In ISO Fortran 90 or later, use recursive function:
RECURSIVErecursive FUNCTIONfunction FIBfib(Nn)
INTEGERinteger, INTENTintent(INin) :: Nn
INTEGERinteger :: FIBfib
SELECTselect (Nn)
CASEcase (:0); FIBfib = 0
CASEcase (1); FIBfib = 1
CASEcase DEFAULTdefault; FIBfib = FIBfib(Nn-1) + FIBfib(Nn-2)
ENDend SELECTselect
ENDend FUNCTIONfunction FIBfib
 
===Iterative===
In ISO Fortran 90 or later:
FUNCTIONfunction FIBfib(Nn)
INTEGERinteger, INTENTintent(Nn) :: Nn
INTEGERinteger, PARAMETERparameter :: FIB0fib0 = 0, FIB1fib1 = 1
INTEGERinteger :: FIBfib, BACK1back1, BACK2back2, Ii
SELECTselect (Nn)
CASEcase (:0); FIBfib = FIB0fib0
CASEcase (1); FIBfib = FIB1fib1
CASEcase DEFAULTdefault
FIBfib = FIB1fib1
BACK1back1 = FIB0fib0
DOdo Ii = 2, Nn
BACK2back2 = BACK1back1
BACK1back1 = FIBfib
FIBfib = BACK1back1 + BACK2back2
ENDend DOdo
ENDend SELECTselect
ENDend FUNCTIONfunction FIBfib
 
=={{header|Haskell}}==