主题:兔子狐狸
zhangyuan
[专家分:630] 发布于 2006-12-24 15:20:00
问题这样的:围绕着山顶有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个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2006-12-25 17:15:00
不是很简单吗?你把循环变量设成寻找次数以后又把i用作当前查找的洞窟了
把循环内的i设成另一个初值是1的变量吧
板凳
好难啊啊 [专家分:0] 发布于 2006-12-25 22:03:00
好复杂啊
3 楼
mickeyice [专家分:200] 发布于 2006-12-28 02:52: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:=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 楼
雪光风剑 [专家分:27190] 发布于 2006-12-28 06:54:00
[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 楼
mickeyice [专家分:200] 发布于 2007-01-02 16:52:00
这个倒是没考虑 ~~~~毕竟现在的电脑好了....这些作业的题目 也只求结果了
6 楼
雪光风剑 [专家分:27190] 发布于 2007-01-02 23:23:00
跟电脑没关系
你的程序有逻辑错误
7 楼
迷路的天使 [专家分:1340] 发布于 2007-11-24 11:14:00
lz真笨`````
8 楼
在蓝天fi5 [专家分:80] 发布于 2007-11-24 13:46:00
7L:你会吗?
LZ:很简单的,算下就行了
我来回复