如何用PASCAL解答“狐狸和兔子”?

来源:百度知道 编辑:UC知道 时间:2024/06/02 17:33:38
围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里。狐狸总想吃掉兔子,一天兔子对狐狸说:“你想吃我可以,但有一个条件,先把洞从1~10编号,你从10号洞出发,先到一号洞找我,第二次隔一个洞找我(第3号洞),第三次隔两个洞找我(第6号洞),以后以此类推,只要你能抓到我就可以吃掉我,但是没有找到我之前不能停下。”狐狸从早到晚找了1000次也没有找到兔子,累得再也没有醒过来。编写程序,输出兔子在几号洞?一行一个,共4个。
用Free Pascal的数组和循环来做,谢谢

program tuzi;
const n=10;
var
i,j,k:integer;
a:array[0..9]of boolean;
begin
for i:=1 to n do a[i]:=false;
i:=2;
while i<=9 do
begin
a[i]:=true;
j:=1;
k:=1;
while (not a[j])and(k<=999) do
begin
k:=k+1;
j:=(j+k)mod n;
end;
a[i]:=false;
if k=1000 then writeln(i);
i:=i+1;
end;
readln
end.

program l_1(input,output);
type arrtype=array[1..10] of integer;
var
a:arrtype;
i,t:integer;
procedure find(i:integer);
var j:integer;
begin
for j:=0 to i do if t<10 then t:=t 1 else t:=1;
a[t]:=a[t] 1;
end;
begin
t:=3;
fillchar(a,sizeof(a),0);
a[t]:=1;
for i:=2 to 1000 do find(i);
for i:=1 to 10 do if a[i]=0 then write(i:8);
writeln;