早教吧作业答案频道 -->其他-->
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个人站成一...的网友还看了以下:
有一盒糖,7粒一数还余4个,5粒一数又少3个,3粒一数正好没有剩余,这盒糖至少有粒. 2020-03-30 …
有一箱苹果不超过300个,3个一数正好数完,5个一数正好数完,7一个一个数也正好数完.这箱苹果最多有 2020-03-30 …
要写算式答案哦.要写清楚1、一堆桃子在150至300个之间,没3个一数,正好一数,没有余数,没5个一 2020-03-31 …
有一箱苹果多于100,但不超过.每10个一数正好数完,每7个一数,也正好数完.这箱苹 2020-04-06 …
数学题:一箱橘子,每4个一数,正好数完;每6个一数也正好数完,没有余数.这箱橘子至少要有多少个? 2020-05-13 …
一箱橘子不超过300个,每三个一数,正好数完,没有余数,每5个一数正好数完、每7个一数也恰好数完, 2020-05-13 …
有一筐橘子,7个一数还多4个,五个一数又少3个,3个一数恰好数完,这筐橘子至少有多少个. 2020-06-10 …
1、从1、2、3、4、5、6、7、8、9、10中至多能选出()个数,使得选出的数中每一个数都不是另 2020-06-13 …
战士宋学义扔手榴弹总要把胳膊抡一个圈,好使出浑身的力气.这句话使用了那种修辞 2020-06-16 …
珍珠有多少颗?晓晓的妈妈脖子上挂着一串美丽的珍珠项链.晓晓问妈妈珍珠有多少时,妈妈回答:‘‘大约1 2020-06-20 …