主题:!大家来看看狐狸捉兔子问题的这种解法啊
菜鸟种菜
[专家分:50] 发布于 2005-08-18 10:51:00
【问题】围绕着山顶有10个洞,狐狸要吃兔子,兔子说:“可以,但必须找到我,
我就藏身于这十个洞中,你从10号洞出发,先到1号洞找,第二次隔1个
洞找,第三次隔2个洞找,以后如此类推,次数不限。”但狐狸从早到晚进
进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里?
program tuzi;
var
a:array[1..100] of integer;
i,n:integer;
begin
for i:=1 to 10 do a[i]:=0;
i:=10;n:=1;
while n<=1000 do
begin
i:=(i+n-1) mod 10 +1;
a[i]:=1;n:=n+1;
end;
for i:=1 to 10 do
if a[i]=0 then writeln('home'i:3);
end.
i:=(i+n-1) mod 10 +1; 这句不懂~~~~~~~
[em10][em10][em10]
回复列表 (共11个回复)
沙发
FancyMouse [专家分:13680] 发布于 2005-08-18 10:55:00
任何一个数mod10以后,取值就是0~9,现在题目需要的是1~10,因此在mod10外面+1,这样多加了1么就要在mod里面-1,于是i:=(i+n-1)mod10+1;
板凳
菜鸟种菜 [专家分:50] 发布于 2005-08-18 11:08:00
高手就是高手嘛++++++++++++[em1][em1]
3 楼
口口and枕头 [专家分:1550] 发布于 2005-08-18 17:05:00
哦以前做的~
program tuzi;
const n=10;
var
i,j:integer;
a:array[1..n] of boolean;
begin
for i:=1 to n do a[i]:=true;
j:=0;
for i:=1 to 1000 do
begin
if (i mod 10=0) then a[10]:=false
else a[i mod n]:=false;
j:=j+1;
i:=j+i;
end;
for i:=1 to 10 do
if a[i] then write(i:3);
readln;
end.
4 楼
xpycc [专家分:410] 发布于 2005-08-18 19:58:00
摆脱,跟帖不行么~~~~~~~~~~~~~~~~~~~
5 楼
口口and枕头 [专家分:1550] 发布于 2005-08-18 21:46:00
谁说过不行呀?
6 楼
xpycc [专家分:410] 发布于 2005-08-19 17:56:00
我说的是楼主
7 楼
菜鸟种菜 [专家分:50] 发布于 2005-08-19 19:35:00
o ~O 不好意思 口口 谢谢你的程序啊
8 楼
口口and枕头 [专家分:1550] 发布于 2005-08-22 14:01:00
不用谢,表忘了加分就行了~
9 楼
Game¢BOY [专家分:0] 发布于 2005-08-27 10:31:00
错啦!!!!!!!最好面那个('home'i:3)
少了个,号 i前面加个,号才行
10 楼
风花雪月☆雨 [专家分:460] 发布于 2005-08-31 14:29:00
用吗?不用吧!(也许我记错了)
我来回复