狼追兔子
一只兔子躲进了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