主题:[讨论]一道关于单链环的题目,谁来帮找错
题目是围绕着山顶有10个洞,一只兔子和一只狐狸各住一个洞,狐狸总想吃掉兔子。一天兔子对狐狸说,你想吃我有一个条件,你先把洞编号1到10。你从第10号洞出发,先到第1号洞找我,第二次隔一个洞找我,第三次隔两个洞找我,以后依次类推,次数不限。若能找到我,你就可以饱餐一顿,在没找到我之前不能停止。狐狸一想只有10个洞,寻找的次数又不限,哪有找不到的道理,就答应了条件。结果就是没找着。
利用单链环编程,假定狐狸找了1000次,兔子躲在哪个洞里才安全。
type pointer=^code;
code=record
key:integer;b:boolean;next:pointer;
end;
var m,i:integer;head,p:pointer;
procedure zhao(n:integer);
var t:integer;
begin
t:=2;head^.b:=false;
while t<n do
begin for i:=1 to t do p:=head^.next;p^.b:=false;t:=t+1;end;
end;
begin
writeln('input ci shu:');readln(m);new(head);p:=head;
for i:=1 to 10 do
begin p^.key:=i;p^.b:=true;if i<>10 then p:=p^.next else head:=p^.next;
end;
zhao(m);p:=head;
for i:=1 to 10 do
begin if p^.b=true then writeln(p^.key);end;
readln;end.
利用单链环编程,假定狐狸找了1000次,兔子躲在哪个洞里才安全。
type pointer=^code;
code=record
key:integer;b:boolean;next:pointer;
end;
var m,i:integer;head,p:pointer;
procedure zhao(n:integer);
var t:integer;
begin
t:=2;head^.b:=false;
while t<n do
begin for i:=1 to t do p:=head^.next;p^.b:=false;t:=t+1;end;
end;
begin
writeln('input ci shu:');readln(m);new(head);p:=head;
for i:=1 to 10 do
begin p^.key:=i;p^.b:=true;if i<>10 then p:=p^.next else head:=p^.next;
end;
zhao(m);p:=head;
for i:=1 to 10 do
begin if p^.b=true then writeln(p^.key);end;
readln;end.