一、问题描述:
一只兔子躲进了10 个环形分布的洞中的一个。狼在第一个洞中没有找到兔子,就隔一个洞,到第3个洞去找;也没有找到,就隔2个洞,到第6个洞去找;以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?
二、设计思路:
首先定义一个数组a[11],其数组元素为a[1],a[2],a[3]……a[10],这10个数组元素分别表示10个洞,初值均置为1。接着使用“穷举法”来找兔子,通过循环结构进行穷举,设最大寻找次数为1000次。由于洞只有10个,因此第n次查找对应第n%10个洞,如果在第n%10个洞中没有找到兔子,则将数组元素a[n%10]置0。当循环结束后,再检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身于该洞中。
三、程序流程图
四、代码实现
#include<stdio.h>
int main()
{
int n=0,i=0,x=0;
int a[11];
for(i=0;i<11;i++)
a[i]=1;
for(i=0;i<1000;i++)
{
n+=(i+1);
x=n%10;
a[x]=0;
}
for(i=0;i<10;i++)
{
if(a[i])
printf("可能在第%d个洞\n",i);
}
}
标签:10,5.21,int,元素,n%,兔子,数组,打卡 From: https://www.cnblogs.com/wanbeibei/p/17419516.html