N只猴子选猴王问题,编程的fortran语言,方法是,它们围成一圈,从1到M连续报数.凡是报到M时,报该数的猴子就从圈中退出,然后剩下的猴子接着(从退出圈中的猴子后边开始)从1到M报数,直到只剩

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/09 04:58:25
N只猴子选猴王问题,编程的fortran语言,方法是,它们围成一圈,从1到M连续报数.凡是报到M时,报该数的猴子就从圈中退出,然后剩下的猴子接着(从退出圈中的猴子后边开始)从1到M报数,直到只剩N只猴

N只猴子选猴王问题,编程的fortran语言,方法是,它们围成一圈,从1到M连续报数.凡是报到M时,报该数的猴子就从圈中退出,然后剩下的猴子接着(从退出圈中的猴子后边开始)从1到M报数,直到只剩
N只猴子选猴王问题,编程的fortran语言,
方法是,它们围成一圈,从1到M连续报数.凡是报到M时,报该数的猴子就从圈中退出,然后剩下的猴子接着(从退出圈中的猴子后边开始)从1到M报数,直到只剩下一个猴子时,该猴子就是猴王

N只猴子选猴王问题,编程的fortran语言,方法是,它们围成一圈,从1到M连续报数.凡是报到M时,报该数的猴子就从圈中退出,然后剩下的猴子接着(从退出圈中的猴子后边开始)从1到M报数,直到只剩
上学期刚上过fortran,一样的题,貌似m,n换了个位置.
program exercise01
implicit none
integer m,n,err,i,temp,index,left,t,s,r
integer(2),allocatable:: a(:),b(:)
real(4) r1,r2,r3
character(1),allocatable:: name(:)
!n不能等于1,n在2到m间,m在3到14间
call random_seed()
call random_number(r1)
m=int(12*r1)+2
call random_number(r2)
n=int((m-3)*r2)+2
print *,'m=',m,'n=',n
print *
!确认可分配数组是否分配
allocate(name(m),stat=err)
if(err.ne.0) stop 'array allocation error'
allocate(a(m),stat=err)
if(err.ne.0) stop 'array allocation error'
allocate(b(m),stat=err)
if(err.ne.0) stop 'array allocation error'
a=(/1:m/)
!随机产生顺序,即随机产生相应于顺序的猴子名,用asc码表示
do i=m,1,-1
call random_number(r3)
temp=int((i-1)*r3)+1
name(m+1-i)=char(a(temp)+96)
a(temp:(m-1))=a((temp+1):m)
enddo
print *,'起始顺序:'
do i=1,m
write(*,'(a4$)') name(i)
enddo
print *
!报数过程,r为轮次,t为每轮剩余人数,s用于计数
r=0
do
r=r+1
t=s
s=0
print *
print *
write(*,'(a4,i4,a4)') '第',r,'轮'
if(r.eq.1) t=m
do i=1,t
if(mod(i,n).eq.0) then
s=s+1
name(s)=name(i)
write(*,'(a4$)') name(s)
endif
enddo
if(s.lt.n) exit
enddo
print *
print *
write(*,'(a8,a4)') '猴王为',name(1)
end program

N只猴子选猴王问题,编程的fortran语言,方法是,它们围成一圈,从1到M连续报数.凡是报到M时,报该数的猴子就从圈中退出,然后剩下的猴子接着(从退出圈中的猴子后边开始)从1到M报数,直到只剩 求c++编程,猴子选大王,采用面向过程的思想实现要求编程实现: 猴子选大王问题描述:m只猴子围坐一圈,从1开始报数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最 C编程猴子分桃问题有1堆桃子共 m 个,由 n 只猴子分配这些桃子.每次到达桃子堆放地的猴子只有1只,而且每个猴子都会平均分 1 次桃子.第1只到达的猴子将桃子平均分成 n 等份,但发现多 k ( k < n 有一只猴王老了,要选新的猴王,它让1000只猴子排成一排,每次让单数的猴子出列,最后 留下的那只猴子是猴王,请问那是第几只猴子? 四道题(要算式)1.猴王分桃子,猴王拿一些桃子分给36只猴子,每碰到一只猴子,猴王就将所有桃子的一半给猴子,每只猴子也都换猴王一只桃子,最后猴王还剩下2个桃子,那么猴王原来有多少只 用C++求猴子吃枣子问题编程求猴子吃枣问题:猴子摘了一堆枣n个,第一天吃了一半,还嫌不过瘾,又多吃了一个:第二天又吃了剩下的一半零一个:以后每天如此,到第N天,猴子一看只剩下一个了 麻烦看一下下面的程序有什么问题!猴子选大王.n只猴子围成一圈,从1到m报数,报m的猴子出局.余下的猴子从第m+1只开始继续从1到m报数,报m的猴子出局.第n只猴子报数后,第1只猴子接着报数(因 一道鸡兔同笼类型的数学问题.大小猴共35只,它们一起去摘蟠桃.猴王不在的时候,一只大猴子一小时可摘15千克,一只小猴子一小时可摘11千克;猴王在场监督时,每只猴子不论大小,每小时都可以 Turbo Pascal编程题目用Turbo Pascal一维数组(与循环)做下面的题目(要详细程序):N只猴子围成一圈选大王.选举方式如下:1、2、3报数,数到3的猴子退出圈外.直到剩下一只猴子为止,这只猴子 猴子选大王的编程,数据结构方法 n只猴子选大王,选举办法如下:从头到尾1,2,3报数,凡报3的退出,余下的从尾到头1,2,3报数,凡报3的退出.如此类推,当剩下两只猴子时,取这时报1的为王,若想当猴王,请问当初应占据什么位置?请大家 四道题(要算式) 1.猴王分桃子,猴王拿一些桃子分给36只猴子,每碰到一只猴子,猴王就将所有桃子的一半给 一道小学奥数复杂的鸡兔同笼问题不要用方程求解,谢谢!大、小猴子共35只,它们一起去摘蟠桃.猴王不在的时候,一只大猴子一小时可摘15千克,一只小猴子一小时可摘11千克;猴王在场监督时,每 猴王出世写了一只什么的猴子 “大、小猴子共35只,它们一起去采摘水蜜桃.猴王不在的时候,一只大猴子一小时可采摘15千克,一只小猴子一 大、小猴子共35只,它们一起去采摘水蜜桃.猴王不在的时候,一只大猴子一小时可采摘15千克,一只小猴子一小 猴王有10只小猴子,把桃子分一半给每只小猴子再退回一只.10只小猴分完猴王手里还剩2个桃子,问共多少桃?退回的是一只桃子 C数组猴子选大王猴子选大王,n只猴子围成一圈,从1到m报数,报m的猴子出局.第n只猴子报数后,第1只猴子接着报数(因为围成了圈).待整个全只剩下一只猴子时,该猴子即为大王.n,m由用户输入,请