狼追兔子
一只兔子躲进了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 最安全,狼找不到
转载于:https://blog.51cto.com/zlfwmm/1617428