早教吧作业答案频道 -->其他-->
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个人站成一...的网友还看了以下:
在妇女节前后,某快递总站的快递数量不断增加,每个快递到达总站后都需要进行快递单号的扫描,妇女节当天 2020-04-08 …
一道奥数题,麻烦大家帮我做做吧,如下,AB两辆汽车同时从甲乙两站相向开出.两车第一次在距甲站32千 2020-04-27 …
呃,在4*4的放个中作出面积为10平方厘米的正方形,然后在数轴上表示出实数10的平方根,-10的平 2020-05-13 …
小数六年级应用题,请大家帮忙,谢谢!两辆汽车同时从东西两站相向开出,第一次在离东站60千米的地方相 2020-05-15 …
求数学题一道,如果能在30分钟内解答出来,甲乙两车同时从A\B两地相对开出,第一次相遇时离A站有9 2020-05-16 …
1.三个粮站共有面粉1400千克,甲站与乙站的面粉的重量比是3:4乙站与丙站的面粉重量比是6:7, 2020-06-10 …
乘坐过几站英语从公交汽车南站出发,坐60/K60路,乘坐6站后在公交一公园站下车,换乘K102路, 2020-06-15 …
工地上全站仪在使用中:一直在用数据采集模式.最后我们需要放样2个点.可是师傅没有对后视就放样了.请 2020-06-22 …
解答数学题甲、乙两辆汽车分别从A、B两站同时出发,相向而行,第一次相遇在距A站28千米处,相遇后两 2020-06-26 …
利用如图的4×4方格,作出面积为8平方单位的正方形,然后在数轴上表示出实数8和-8. 2020-07-24 …