回 帖 发 新 帖 刷新版面

主题:兔子狐狸

问题这样的:围绕着山顶有10个洞,一只兔子和一只狐狸各住一个洞,狐狸总想吃掉兔子。一天兔子对狐狸说,你想吃我有一个条件,你先把洞编号1到10。你从第10号洞出发,先到第1号洞找我,第二次隔一个洞找我,第三次隔两个洞找我,以后依次类推,次数不限。若能找到我,你就可以饱餐一顿,在没找到我之前不能停止。狐狸一想只有10个洞,寻找的次数又不限,哪有找不到的道理,就答应了条件。结果就是没找着。
  利用单链环编程,假定狐狸找了1000次,兔子躲在哪个洞里才安全。

我这样编: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.
可是有问题啊

回复列表 (共8个回复)

沙发

不是很简单吗?你把循环变量设成寻找次数以后又把i用作当前查找的洞窟了
把循环内的i设成另一个初值是1的变量吧

板凳


好复杂啊

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:=10;
   for i:=1 to 1001 do
    begin
       a[j mod n]:=false;
       j:=j+i;
    end;
   for i:=2 to 9 do 
        if a[i] then writeln(i);
   readln;
end.


没调试
我用qbasic编的没错:
dim a(10):j=10
for i = 1 to 1001
a(j mod 10)=1:j=j+i
next
for i= 2 to 9
if a(i)<>1 then ? i,
next


hehe ,其实很清晰的题目 
[em4][em4][em5][em5]

4 楼

[quote]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:=10;
   for i:=1 to 1001 do
    begin
       a[j mod n]:=false;
       j:=j+i;
    end;
   for i:=2 to 9 do 
        if a[i] then writeln(i);
   readln;
end.


没调试
我用qbasic编的没错:
dim a(10):j=10
for i = 1 to 1001
a(j mod 10)=1:j=j+i
next
for i= 2 to 9
if a(i)<>1 then ? i,
next


hehe ,其实很清晰的题目 
[em4][em4][em5][em5][/quote]
p的程序绝对会卡
因为你调用了未定义的数组元素a[0]

5 楼

这个倒是没考虑 ~~~~毕竟现在的电脑好了....这些作业的题目 也只求结果了

6 楼

跟电脑没关系
你的程序有逻辑错误

7 楼

lz真笨`````

8 楼

7L:你会吗?
LZ:很简单的,算下就行了

我来回复

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