题目:围绕着山顶有10个洞,一只兔子和一只狐狸住在各自的洞里,狐狸总想吃掉兔子,一天兔子对狐狸说,你想吃我有一个条件,你先把洞编号1到10,你从第10洞出发,先到第1号洞找我,第二次隔一个洞找我,第三次隔两个洞找我,以后依次类推,次数不限,若能找到我你就可以饱餐一顿,在没找到我之前不能停止,狐狸一想只有10个洞,寻找的次数又不限,哪有找不到的道理,就答应了条件,结果狐狸跑得昏了过去也没找到兔子,请问兔子躲在哪个洞里。程序中可假定狐狸找了1000次。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
下标n: 0 1 2 3 4 5 6 7 8 9
0-10循环:n=n%10
每隔i个洞,下标从n->n+i+1
#include <stdio.h>
int main()
{
int hole[10]={0};
for(int i=0;i<10;i++)
{
hole[i]=0;//给每一个洞赋值
}
int n=0;
for(int i=1;i<1000;i++)
{
n=n%10;//当前洞标号
hole[n]=1;//找到的洞赋值1
n=n+i+1;//下一次寻找的洞
}
for(int i=0;i<10;i++)
{
if(hole[i]==0)
{
printf("%d ",i+1);
}
}
printf("\n");
return 0;
}