回 帖 发 新 帖 刷新版面

主题:!大家来看看狐狸捉兔子问题的这种解法啊

【问题】围绕着山顶有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个回复)

沙发

任何一个数mod10以后,取值就是0~9,现在题目需要的是1~10,因此在mod10外面+1,这样多加了1么就要在mod里面-1,于是i:=(i+n-1)mod10+1;

板凳

高手就是高手嘛++++++++++++[em1][em1]

3 楼

哦以前做的~
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 楼

摆脱,跟帖不行么~~~~~~~~~~~~~~~~~~~

5 楼

谁说过不行呀?

6 楼

我说的是楼主

7 楼

o ~O  不好意思 口口 谢谢你的程序啊

8 楼

不用谢,表忘了加分就行了~

9 楼

错啦!!!!!!!最好面那个('home'i:3)
少了个,号  i前面加个,号才行

10 楼

用吗?不用吧!(也许我记错了)

我来回复

您尚未登录,请登录后再回复。点此登录或注册