问题描述:
一只兔子躲进了n个环形分布的洞中的一个,狼在第一个洞中没有找到兔子,就隔一个洞到第三个洞中去找,也没有找到,就隔两个洞。到第六个洞中去找,以后每次多去一个洞找兔子。。。这样下去,假设一直找不到兔子,请问兔子可能藏在那个洞中?
分析:
用数组的下标表示洞口的编号(0到n-1),先把数组全部置0,若狼已经找过这个洞口就把数置1。最后遍历一遍数组找到仍为0的位置即为兔子藏身的位置。
但问题是怎么知道狼什么时候停止寻找呢(即什么时候狼已经把所有可能去找的洞口都去过了),因为狼每次隔不同的间隔去下一个洞。
找到规律:n个洞口,当狼隔着n个洞找时会再次回到起点洞,后面隔着n+1个洞及以后的找就和第一次找是一样的。即循环的终止条件是,狼第二次来到起点洞口,且重复和以前一样的寻找。