题目来源:大工慕课 链接
作者:Caleb Sung
问题
现在有呈环形的十个老鼠洞,按顺时针方向排序分别是1~10号洞。现在从1号洞出发,走一个洞的距离到3号洞,再走两个洞的距离到5号洞,以此类推。总共这样走了一千次,在这个过程中始终没有看到老鼠,问那些洞里可能有老鼠?
参考代码
这里先设定所有洞属性为1,即有老鼠;接下来每走一步就把那个洞的值设为0,即没有老鼠。
不过题目没说第一个洞有没有老鼠,这里我默认它里面有老鼠:
#include<stdio.h>
int main()
{
int hole[10], i, j, num;
for(i=0;i<=9;i++)
hole[i]=1;
for(i=2,j=1;i<=1000;i++,j+=i)
{
num=j%10;
hole[num]=0;
}
printf("可能有老鼠的洞有:\n");
for(i=0;i<=9;i++)
if (hole[i]==1)
printf("%d号洞, ",i+1);
printf("\b\b。");
}
输出结果
可能有老鼠的洞有:
1号洞, 3号洞, 6号洞, 8号洞。