暮年植杖 发表于 2019-4-29 11:56:27

萌新求助,约瑟夫环问题

如何用Fortran解决约瑟夫环问题

liudy02 发表于 2019-4-29 16:22:55

这种问题太过分了
请自学链表的知识以及Fortran如何实现链表的知识

weixing1531 发表于 2019-4-29 18:07:40

百度百科上有很多非链表方法

liudy02 发表于 2019-4-29 18:46:42

weixing1531 发表于 2019-4-29 18:07
百度百科上有很多非链表方法

这种问题难道不就是用来做链表的练习的么……

青衣巷 发表于 2019-5-15 10:01:53

这里是一种非链表方法

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]
查看完整版本: 萌新求助,约瑟夫环问题