Fibonacci sequence: Difference between revisions

Line 163:
=={{header|Fortran}}==
===Recursive===
In ISO Fortran 90 or later, use recursivea RECURSIVE function:
recursive function fibfibR(n) result(fib)
integer, intent(in) :: n
integer :: fib
select case (n)
case (:0); fib = 0
case (1); fib = 1
case default; fib = fibfibR(n-1) + fibfibR(n-2)
end select
end function fibfibR
 
===Iterative===
In ISO Fortran 90 or later:
function fibfibI(n)
integer, intent(nin) :: n
integer, parameter :: fib0 = 0, fib1 = 1
integer :: fibfibI, back1, back2, i
select case (n)
case (:0); fibfibI = fib0
case (1); fibfibI = fib1
case default
fib fibI = fib1
back1 = fib0
do i = 2, n
back2 = back1
back1 = fibfibI
fib fibI = back1 + back2
end do
end select
end function fibfibI
 
=={{header|Haskell}}==
Anonymous user