Pascal猴子选大王

来源:百度知道 编辑:UC知道 时间:2024/05/22 02:55:27
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;