读题:
一只老鼠躲进了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,没找过的地方置为0int 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 |