pascal N只猴子选大王 恩 程序尽量简单.初学者水平
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/01 02:48:22
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.
再问: wrong answer...不知道为什么
再答: 参考我和楼下的程序,我得出了一个结论,数据有问题。。。
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.
再问: wrong answer...不知道为什么
再答: 参考我和楼下的程序,我得出了一个结论,数据有问题。。。
pascal N只猴子选大王 恩 程序尽量简单.初学者水平
一道非常简单的pascal题目,求大师用最简洁的方法做一下,N只猴子选大王.
猴子选大王pascal
pascal 猴子选大王
猴子选大王 Pascal
一道非常简单的pascal题目,求大师用最简洁的方法做一下,N只猴子选大王.选举办法如下:从头到尾1,2,3报数,凡报3
C数组猴子选大王猴子选大王,n只猴子围成一圈,从1到m报数,报m的猴子出局.第n只猴子报数后,第1只猴子接着报数(因为围
猴子选大王程序,帮我注释一下,
猴子选大王问题 Free Pascal提示202堆栈溢出错
过河卒,24点 pascal语言程序.(我是初学者写的易懂点 能省过程、函数尽量省)
M只猴子要选大王,选举办法如下:所有猴子按1,2……n编号围成一圈,从一
猴子选大王n只猴子围坐成一个圈,按顺时针方向从1到n编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,