狐狸吃兔子问题(约瑟环)————穷且益坚,不坠青云之志。

前提是你 提交于 2020-01-06 17:02:13

【推荐】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;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!