狐狸吃兔子问题(约瑟环)————穷且益坚,不坠青云之志。
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 围绕着山顶有10个圆形排列的洞,狐狸要吃兔子, 兔子说:“可以,但必须先找到我,我就藏身于这十个洞中的某个洞。 你从1号洞找,下次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找, 再隔3个…以后在这个圆圈中如此类推,次数不限。”但狐狸从早到晚进进出出了1000次,仍没有找到兔子。 问:兔子可能在哪个洞里?、 #include<stdio.h> int main(int argc, const char *argv[]) { //利用标记法,找过的洞标记1,没有找过的就是初始化的值。 int a[10]={0};//代表是10个洞府并将其初始化为0. int i;//循环变量。 int j=0;//表示狼从第一个洞府开始找。 //j:0 2 5 9 14 //2 3 4 5 => i+2。 //1000次循环可以采用%运算。 for(i=0;i<10000;i++) { a[j]=1;//表示找过的洞府。 j=(j+2+i)%10;//要找的下一个洞府。 } //遍历 for(i=0;i<10;i++) if(!a[i])//等价if(a[i]==0)。 printf("兔子可能藏在%d号洞\n",i+1);//数组下表0对应的是洞府的1号。 return 0; } 来源: oschina 链接: