萌新求助,约瑟夫环问题
如何用Fortran解决约瑟夫环问题 这种问题太过分了请自学链表的知识以及Fortran如何实现链表的知识 百度百科上有很多非链表方法 weixing1531 发表于 2019-4-29 18:07
百度百科上有很多非链表方法
这种问题难道不就是用来做链表的练习的么…… 这里是一种非链表方法
Program main
Implicit None
Integer , parameter :: N = 41 , K = 3
logical :: isDie(N)
integer :: nAlive , nCurr , i
isDie = .false.
nCurr = 1
nAlive= N
Do
if( nAlive < K ) exit
Do i = 1 , K
nCurr = next()
End Do
isDie(nCurr) = .true.
nAlive = nAlive - 1
End Do
Do i = 1 , N
if( .not.isDie(i) ) write(*,*) i
End Do
contains
integer function next()
integer :: nt
nt = nCurr + 1
do
if( nt > N ) nt = 1
if( .not.isDie(nt) ) then
next = nt
return
end if
nt = nt + 1
end do
end function next
End Program main
页:
[1]