码迷,mamicode.com
首页 > 其他好文 > 详细

狼追兔子

时间:2015-03-05 06:58:41      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:数据结构经典问题   狼追兔子   

狼追兔子
一只兔子躲进了10个环形分布的洞的某一个中,狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找,也没有找到,就隔两个洞,到第六个洞去找,以后每次多一个洞去找兔子......这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?

狼找洞的顺序:第一次:1;第二次:3;第三次6;第四次:10;第五次:5......

问题巧妙转换:
兔子在哪个洞安全?《---等价---》狼都会去哪个洞找?
狼找不到兔子,则无穷次进行下去。
第21次狼又回到了1号洞,以后就是重复了,无穷次归结为21次就足够了。

#include <stdio.h>
void main()
{
    bool hole[11]={0}; //10个洞
    int pos=1;
    for(int i=1;i<21;i++)  //第21次狼又回到了1号洞
    {
        hole[pos]=true;  //狼找过的洞
        pos+=i+1;
        pos=pos%10;  
    }
    for(int i=1;i<10;i++)
        if(!hole[i]) printf("兔子可能在第%d洞中\n",i);
}

答案为:2、4、7、9 最安全,狼找不到

狼追兔子

标签:数据结构经典问题   狼追兔子   

原文地址:http://zlfwmm.blog.51cto.com/5892198/1617428

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!