洛奇英雄传拉尔肯在哪:编程~~~~~~~``急用~~~~~~~~~~~狼追兔~~~~~~

来源:百度文库 编辑:高校问答 时间:2024/05/10 06:25:23
一只狼正在草坪上追一只兔子,草坪上有10个坑,狼从第一个坑出发,第一次跳过一个坑,第二次跳过两个坑,第三次跳过三个坑。问兔子躲在第几坑才不会被追到?假设有十个坑,跳完一遍又跳回来进行第二遍~~~~~~~~
一只兔子躲进了10个环形分布洞的某一个中,狼在第一个洞中没有找到兔子,就隔一个洞,到第三个洞去找,也没有找到,就间隔两个洞,到第六个洞去找,以后每次多一个洞去找兔子…这样下去,如果狼一直找不到兔子.请问兔子可能躲在哪个洞中?给出算法步骤,并编程求出结果.

我要的是PASCAL的程序

Java程序,只是用了比较大的数试,没有证明结果。如果需要证明,可以把flag换成二维数组,一个维记录访问标志,另外一个维用来记录下一次跳转步数除10的余数。当两次访问同一洞时得到了相同的余数,那么可证明,这时没有被访问的洞永远不会被访问了。自己看看稍微改改吧。太晚了,睡觉~
public class CatchRabbit
{
private boolean flag[]=new boolean[10];//10个洞,按0-9编号
public CatchRabbit()
{
int i,j;
for (i=0;i<10;i++)
flag[i]=true;
j=2;//第一次是隔一个洞
int INITHOLE=0,MAXTRY=100000;//INITHOLE为狼站的初始洞,MAXTRY为狼跳过的总洞数
for (i=INITHOLE;i<MAXTRY;i+=j)
{
flag[i%10]=false;
j++;
}
System.out.print("第");
for (i=0;i<10;i++)
{
if (flag[i]) System.out.print(i+" ");
}
System.out.println("号洞能藏。");
}
public static void main(String[] args)
{
new CatchRabbit();
}
}

好玩的问题,不过应该是没说清楚,照你现在所述约束不了极限的条件,很多坑都可以啊,比如3号,5号6号.
能把原题写出来吗?
-------
对了,重要在是环形.
正在想.
另外,你要什么语言的,我会点Basic,估计你要的是C的.写出,大家帮~
穷举是没戏了,因为没上限,还得研究论证啊,偶呆.@@
-------