早教吧作业答案频道 -->其他-->
pascal N只猴子选大王 恩 程序尽量简单.初学者水平N只猴子选大王.选举办法如下:从头到尾1、2、3报数,凡报3的退出,余下的从尾到头1、2、3报数,凡报3退出;余下的又从头到尾报数,还是报3的
题目详情
pascal N只猴子选大王 恩 程序尽量简单.初学者水平
N只猴子选大王.选举办法如下:从头到尾1、2、3报数,凡报3的退出,余下的从尾到头1、2、3报数,凡报3退出;余下的又从头到尾报数,还是报3的退出;依此类推,当剩下的两只猴子时,取这时报数报1的为王.若想当猴王,请问当初应占据什么位置?
例如:输入猴子最初的只数N:10
输出想当猴王当初应占据的位置:8
N只猴子选大王.选举办法如下:从头到尾1、2、3报数,凡报3的退出,余下的从尾到头1、2、3报数,凡报3退出;余下的又从头到尾报数,还是报3的退出;依此类推,当剩下的两只猴子时,取这时报数报1的为王.若想当猴王,请问当初应占据什么位置?
例如:输入猴子最初的只数N:10
输出想当猴王当初应占据的位置:8
▼优质解答
答案和解析
var
q:array[1..1000] of integer;// 循环队列
b,e,c:integer;
n:integer;
i:integer;
procedure add(x:integer);
begin
inc(e);
if e >= 1000 then e:=1;
q[e]:=x;
inc(e);
end;
function del():integer;
begin
inc(b);
if b >= 1000 then b:=1;
del:=q[b];
dec(c);
end;
begin
readln(n);
for i:= 1 to n do
add(i);
while c > 2 do
begin
add(del); // 报 1
add(del); // 报 2
del; // 报 3 的退出
end;
// 此时只剩两只猴子
writeln(del);
end.
q:array[1..1000] of integer;// 循环队列
b,e,c:integer;
n:integer;
i:integer;
procedure add(x:integer);
begin
inc(e);
if e >= 1000 then e:=1;
q[e]:=x;
inc(e);
end;
function del():integer;
begin
inc(b);
if b >= 1000 then b:=1;
del:=q[b];
dec(c);
end;
begin
readln(n);
for i:= 1 to n do
add(i);
while c > 2 do
begin
add(del); // 报 1
add(del); // 报 2
del; // 报 3 的退出
end;
// 此时只剩两只猴子
writeln(del);
end.
看了 pascal N只猴子选大王...的网友还看了以下:
馋嘴猴有多少猴王带领79只猴子去采水果,采到了一香蕉和桃子.这些水果被堆在了一起,共有90多个,每只 2020-03-31 …
有一篮桃让小猴数,它3个3个的数,最后多出1个,它把多出的1个扔在一边,它又5个5个的数,最后还是 2020-06-10 …
(1)若等差数列{an}的首项为a1=C11−2m5m-A2m−211−3m(m∈N*),公差是( 2020-06-11 …
矩阵经过初等变换以后,他的各项代数余子式与余子式和原来的矩阵有什么关系?我指的是变换后的代数余子式 2020-06-14 …
一个数除去551,745,1133,1372这4个数,余数都相同,则这个数最大可能是?打错了... 2020-06-27 …
304011110-10053-22中第四行代数余子式之和为多少第一行3040第二行1111第三行 2020-08-03 …
你好我想问问线代余子式的问题我是通过看到你提的一个问题才向你求助的.你知道了为什么用1代替第一行数 2020-08-03 …
老婆数鸡蛋的数学题,两个两个数余一个,三个三个数余一个,四个四个数余一个,五个五个数余一个,六个六个 2020-11-10 …
猴王让小猴数捡回的栗子,小猴10个10个的数,到最后缺一个;9个9个的数,到最后也缺一个:8个8个, 2020-11-11 …
小数除以整数,余数是多少?例如3.1除以1,计算机算出的答案余数是0,可是我们老师说余数不是0,请哪 2021-02-01 …