读题:
一只老鼠躲进了10个环形分布的洞的一个中。并按1,2,3,4,5,6,7,8,9,10进行编号,猫在第一个洞中没有找到老鼠,就隔一个洞查找,及到第三个洞去找;但没有找到,然后就隔两个洞继续寻找,及到第六个洞去找,仍然没有找到;以后每次多隔一个洞去找老鼠……这样一直找下去。假定猫最多找500次,在猫找老鼠的这些次数中,如果一直找不到老鼠,请问老鼠可能在哪些洞中?
输入格式:
猫找老鼠的次数n,次数在【1,500】中的任意数,找n次后停止找寻。
输出格式:
老鼠可能在那些洞中,每个洞按编号换行输出
输入样例:
在这里给出一组输入。例如:
2
输出样例:
在这里给出相应的输出。例如:
2
4
5
6
7
8
9
10
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码如下:
#include <stdio.h>
int main(){
int a[2][10]={{1,2,3,4,5,6,7,8,9,10},{0}};int k=0;
a[1][0]=1;//将猫找过的地方置为1,没找过的地方置为0
int bb=1;//步幅
int n;//寻找次数
scanf("%d",&n);
for(int i=1;i<n;i++){
bb++;//步幅++
if(k+bb<9) k+=bb;//移动后的位置
else k=(k+bb)%10;
a[1][k]=1;
}
for(int i=0;i<10;i++){
if(a[1][i]!=1){//没有找过的地方
printf("%d\n",a[0][i]);
}
}
return 0;
}
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
猫找到的地方置为1.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |