呼吸末二氧化碳 耗材:Pascal猴子选大王

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 19:35:37
turbo pascal

我这个是用指针做的 可能不太简练
program abc;
type link=^rec;
rec=record
num:integer;
next:link;
end;
var p,q,head:link;
m,n,i:integer;
begin
write('The total number:');readln(m);//读入总数
write('The elect number:');readln(n);//读入每一次跳的数目
new(head);head^.num:=1;p:=head;//初始化
for i:=2 to m do begin
new(q);
q^.num:=i;
p^.next:=q;
p:=q;
end;
p^.next:=head;
p:=head;
i:=0;
repeat{循环 当p为p的子结点的时候停止 也就是说此时只有一个结点}
new(q);
q:=p;
p:=p^.next;
i:=i+1;
if i=n then begin
i:=0;
p^.next:=q^.next;
dispose(q);
end;
until p=p^.next;
writeln(p^.num);
readln;
end.

这个我信手拈来:
(所以未测试呦,m为猴子个数,n为淘汰的猴子所数的数)

program king;
var
a:array[1..1000] of boolean;
i,m,n,p,s:integer;
begin
read(m,n);
for i:=1 to m do a[i]:=ture;

s:=0;
i:=0;
repeat
p:=0;
repeat
i:=i+1;
if i>m then i:=1;
if a[i]=ture then p:=p+1;
until p=n;
a[i]:=false;
s:=s+1;
until s=m-1;

for i:=1 to m do
if a[i]=true then
begin
writeln(i);
break;
end;

end.

最后输出哪只猴子是大王
如果我的程序有误,也请大家指出。

我有C版本的,你要联系我

问什么问题?请讲清楚。