Fibonacci sequence: Difference between revisions
Content added Content deleted
(add E example) |
|||
Line 164: | Line 164: | ||
===Recursive=== |
===Recursive=== |
||
In ISO Fortran 90 or later, use recursive function: |
In ISO Fortran 90 or later, use recursive function: |
||
recursive function fib(n) |
|||
integer, intent(in) :: n |
|||
integer :: fib |
|||
select (n) |
|||
case (:0); fib = 0 |
|||
case (1); fib = 1 |
|||
case default; fib = fib(n-1) + fib(n-2) |
|||
end select |
|||
end function fib |
|||
===Iterative=== |
===Iterative=== |
||
In ISO Fortran 90 or later: |
In ISO Fortran 90 or later: |
||
function fib(n) |
|||
integer, intent(n) :: n |
|||
integer, parameter :: fib0 = 0, fib1 = 1 |
|||
integer :: fib, back1, back2, i |
|||
select (n) |
|||
case (:0); fib = fib0 |
|||
case (1); fib = fib1 |
|||
case default |
|||
fib = fib1 |
|||
back1 = fib0 |
|||
do i = 2, n |
|||
back2 = back1 |
|||
back1 = fib |
|||
fib = back1 + back2 |
|||
end do |
|||
end select |
|||
end function fib |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |