早教吧作业答案频道 -->其他-->
pascal约瑟夫n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。现在有一圈人,k个好人站在一起,k个坏人站在一起。从第一个好
题目详情
pascal约瑟夫
n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。
现在有一圈人,k个好人站在一起,k个坏人站在一起。从第一个好人开始数数。
你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死。
输入
一个k,0 输出
一个m
样例:
joseph.in
3
joseph.out
5
另一个样例:
joseph.in
4
joseph.out
30
务必在程序后加一些必要说明,感谢!
n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。
现在有一圈人,k个好人站在一起,k个坏人站在一起。从第一个好人开始数数。
你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死。
输入
一个k,0
一个m
样例:
joseph.in
3
joseph.out
5
另一个样例:
joseph.in
4
joseph.out
30
务必在程序后加一些必要说明,感谢!
▼优质解答
答案和解析
给你更好理解的。
这是筛法
var
n,m,i,s,p:integer;
a:array[1..10000] of integer;
begin
read(n,m);//这步不用说了吧?
for i:=1 to n do
a[i]:=1;//先全部赋值1
p:=0;s:=0;//统计人数和报数字用的
repeat
for i:=1 to n do
begin
if a[i]=0
then continue; //用于等会排除出圈者
s:=s+a[i];//不断累加(报数字)
if s=m then//出圈者
begin
write(i,' ');打印出圈者;
a[i]:=0;//明白刚才continue的意思了吧
p:=p+1;//人数减少一个;
s:=0;//重头报起。
end;
end;
until p=n;//直到人数到了
end。
其实呢,筛法的原理就是:
(1)先统一初始化,一般用for。可以赋值0,1,true,false。
(2) 在数组范围内,根据条件筛选,不符合条件的做反标记。
(3)输出结果。根据标记值输出。
所以,一般需要三个循环
这是筛法
var
n,m,i,s,p:integer;
a:array[1..10000] of integer;
begin
read(n,m);//这步不用说了吧?
for i:=1 to n do
a[i]:=1;//先全部赋值1
p:=0;s:=0;//统计人数和报数字用的
repeat
for i:=1 to n do
begin
if a[i]=0
then continue; //用于等会排除出圈者
s:=s+a[i];//不断累加(报数字)
if s=m then//出圈者
begin
write(i,' ');打印出圈者;
a[i]:=0;//明白刚才continue的意思了吧
p:=p+1;//人数减少一个;
s:=0;//重头报起。
end;
end;
until p=n;//直到人数到了
end。
其实呢,筛法的原理就是:
(1)先统一初始化,一般用for。可以赋值0,1,true,false。
(2) 在数组范围内,根据条件筛选,不符合条件的做反标记。
(3)输出结果。根据标记值输出。
所以,一般需要三个循环
看了pascal约瑟夫n个人站成一...的网友还看了以下:
为什么第二周期除了OF之外的元素的同核双原子分子轨道中2pπ的能量反而比2pσ的能量要低?我知道是 2020-05-13 …
已知传入人耳的前后两次声音的时间间隔大于0.1s时,人就能听到两次声响;声音的传播速度在空气中为3 2020-06-04 …
英语中的少数名词是什么?还有希腊语名词和拉丁语名词在书上看规则的复数名词时看到少数名词后加s或加e 2020-06-05 …
关于磁力的一个问题(必看!)我用绣花针摩擦条形磁铁的s极,成了一个小磁针,那么小磁针上的磁是s,那 2020-06-09 …
阅读下面的文章,回答后面的问题。青木瓜之味①大约是2000年初春的一个星期天下午,我去邮局发信。就 2020-06-22 …
在下图中,MN为平面镜,S为发光点,A是人的眼睛所在的位置.(1)遮住平面镜上的某一点Q,人的眼睛 2020-06-26 …
常温下,某盐溶液中,水电离的氢离子浓度为10-3,则PH为答案是3到11都有可能.因为如果是弱酸弱 2020-06-27 …
如图所示,在橄榄球比赛中,一个85kg的前锋队员以5m/s的速度跑动,想穿越防守队员到底线触地得分 2020-07-12 …
科考船“雪龙号”在北极考察时,停在一座离它1.05KM的冰山前,在鸣笛后多就能听到回声?如果以10 2020-07-13 …
(s/140)-(s/150)=5,怎么就知道s含有3和7两个公因子?我知道140有7,150有3 2020-08-01 …