A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
24
Task/Mutual-recursion/Fortran/mutual-recursion-1.f
Normal file
24
Task/Mutual-recursion/Fortran/mutual-recursion-1.f
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
module MutualRec
|
||||
implicit none
|
||||
contains
|
||||
pure recursive function m(n) result(r)
|
||||
integer :: r
|
||||
integer, intent(in) :: n
|
||||
if ( n == 0 ) then
|
||||
r = 0
|
||||
return
|
||||
end if
|
||||
r = n - f(m(n-1))
|
||||
end function m
|
||||
|
||||
pure recursive function f(n) result(r)
|
||||
integer :: r
|
||||
integer, intent(in) :: n
|
||||
if ( n == 0 ) then
|
||||
r = 1
|
||||
return
|
||||
end if
|
||||
r = n - m(f(n-1))
|
||||
end function f
|
||||
|
||||
end module
|
||||
17
Task/Mutual-recursion/Fortran/mutual-recursion-2.f
Normal file
17
Task/Mutual-recursion/Fortran/mutual-recursion-2.f
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
program testmutrec
|
||||
use MutualRec
|
||||
implicit none
|
||||
|
||||
integer :: i
|
||||
integer, dimension(20) :: a = (/ (i, i=0,19) /), b = (/ (i, i=0,19) /)
|
||||
integer, dimension(20) :: ra, rb
|
||||
|
||||
forall(i=1:20)
|
||||
ra(i) = m(a(i))
|
||||
rb(i) = f(b(i))
|
||||
end forall
|
||||
|
||||
write(*,'(20I3)') rb
|
||||
write(*,'(20I3)') ra
|
||||
|
||||
end program testmutrec
|
||||
Loading…
Add table
Add a link
Reference in a new issue