Anonymous user
Fibonacci sequence: Difference between revisions
→{{header|Fortran}}
Line 164:
===Recursive===
In ISO Fortran 90 or later, use a RECURSIVE function:
module fibonacci
recursive function fibR(n) result(fib)▼
contains
▲ recursive function fibR(n) result(fib)
integer :: fib▼
integer, intent(in) :: n
case
end function fibR▼
end select▼
▲ end function fibR
===Iterative===
In ISO Fortran 90 or later:
function fibI(n)
integer, intent(in) :: n
integer, parameter :: fib0 = 0, fib1 = 1
integer :: fibI, back1, back2, i
do i = 2, n
fibI = back1 + back2
end do
end select
end function fibI▼
end module fibonacci
Test program
program fibTest
use fibonacci
do i =
print *, fibr(i),
end do
▲ case (1); fibI = fib1
end program fibTest
▲ case default
Output
▲ fibI = fib1
0 0
▲ back1 = fib0
1 1
▲ do i = 2, n
1 1
▲ back2 = back1
2 2
▲ back1 = fibI
3 3
▲ fibI = back1 + back2
5 5
▲ end do
8 8
▲ end select
13 13
▲ end function fibI
21 21
34 34
55 55
=={{header|Haskell}}==
|