狼追兔子问题看穷举法应用
问题描述
一只兔子躲进了10个环形分布的洞中的一个。狼在第一个洞中没有找到兔子,就隔一个洞,到第3个洞去找;也没有找到,就隔2个洞,到第6个洞去找;以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?
思路:
从题目信息可以看出,兔子数量为1,洞的数量为10,且在这些洞正好呈现环形,不由得让我在脑海里想起了数据结构与算法图解中循环部分的内容,也就是在暗示我们可以进行循环遍历搜索。
文章图片
另外,狼的走向也有规律,第一次在第一个洞,第二次第3个洞,第三次在第6个洞,很像斐波拉契序列中的知识应用。
最后,我们还需要注意一个问题,每次狼搜索结束,我们一定需要初始化数值,以便于下次重新搜索。
因此代码如下:
#include
int main()
{
int n=0, i=0, x=0;
int a[10];
for(i=0;
i<=10;
i++)/*设置数组初值*/
a[i]=1;
for(i=0;
i<1000;
i++)/*穷举搜索*/
{
n+=(i+1);
x=n%10;
a[x]=0;
/*未找到,置0*/
}
for(i=0;
i<10;
i++)/*输出结果*/
{
if(a[i])
printf("可能在第%d个洞\n", i);
}
return 0;
}
【狼追兔子问题看穷举法应用】因此,我们得出,可能的情况有:
文章图片
推荐阅读
- ROS|【ROS wiki】3、如何利用ros wiki寻求问题答案()
- KickApps-更改表单验证以使用JQuery。修复IE的问题
- Android表布局宽度问题
- 关于bat脚本中的命令状态码相关的%errorlevel%变量问题
- tomcat+mysql+android studio中遇到的问题
- 解决Macbook Pro 2017安装Windows10双系统后在Windows系统中Apple蓝牙鼠标不能使用问题
- SpringBoot整合Mybatis进行单元测试mapper和xml路径不一致出现的诡异问题
- ionic (webApp)软qv键盘打开时视口高度变小导致样式问题的解决方案
- Unity2021发布WebGL与网页交互问题的解决
- as使用AsyncHttpClient 报错的问题,是因为版本新了,而android6.9 就把HttpClient给删除了