早教吧作业答案频道 -->其他-->
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个人站成一...的网友还看了以下:
设函数f(x)=ax²+8x+3(a<0)对于给定的负数a,有一最大的正数l(a),使得 2020-05-17 …
有一个灯L和一个电阻R串联.闭合开关后,灯L亮,一段时间后,L熄灭.如电路中只有1处故障,且只发生 2020-06-07 …
NL+1的意思于是咱很弱的问问题在贴吧里有人回复像1L+1,2L+1等等,是说某L说的对所以加1? 2020-06-23 …
有长度均为L的砖块,每块砖压着下面的砖并且伸出一部分,当没有用水泥沾住并处于平衡状态时候,各块砖能 2020-07-07 …
已知一直线l恒过点A(2,1),直线外有一点B(3,-2)问当直线l斜率为何值时,点B到直线l的距 2020-07-15 …
几个高一数学直线与圆的测试题.(需要详细过程,谢)1.已知圆C:(x+1)平方+(y-2)平方=6 2020-07-29 …
一条笔直的公路l穿过草原,公路边有一卫生站A,距公路30km的地方有一居民点B,A,B之间的距离为9 2020-11-05 …
校门外的树c++求大神帮看代码描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1 2020-11-20 …
2013年,中国遭遇史上最严重的雾霾天气警,2014年初,京津冀纷纷启动重污染天气预警,雾霾成为人们 2020-11-24 …
运用知识解决问题(1)为什么教室里一部分同学看黑板会感到“反光”看不清字?答:当黑板表面比较&nms 2020-11-25 …