一个环型有10个洞,一兔子藏在其中一个洞,某狼钻进第一个洞找不到兔子,就隔一个洞,从第三个洞进去找,
还是找不到就隔两个洞,从第六个洞找,找不到就隔三个洞,以此类推.
狼一直找不到兔子,问兔子有可能在哪一个洞?
#include <stdio.h>
int wolf = 1;
int i = 1;
int arr[10] = { 1,2,3,4,5,6,7,8,9,0 }; //代表10个洞
int n = 0;
int yn(a) //判断狼会找哪些洞的函数
{
if (wolf % 10 == a) //若满足则把洞的代表值赋为20,防止打印函数中把这个洞打印出来
return 20;
else
return a;
}
void pf(b)
{
if (b < 12) //为了使yn函数中被赋值成20的洞不被打印
printf("%d ", b); //打印出所有不会被狼找的洞
}
int main()
{
for (wolf = 3, i = 2; 1; wolf += i)
{
if ((wolf % 10) == 1 && (i % 10) == 1)//狼遍历可能会抓的洞,也是数组arr中10号洞被赋
//为0的原因
break;
for (n = 0; n <= 9; n++)
{
arr[n] = yn(arr[n]);
}
i++;
}
if(arr[9] != 20) //如果10号洞不会被狼找就不会被赋成20
arr[9] = 10; //使10号洞能够被打印成10而不是0
for (n = 0; n < 10; n++)
{
pf(arr[n]);
}
return 0;
}