|
发表于 2022-5-23 09:06:22
|
显示全部楼层
本帖最后由 jhq999 于 2022-5-23 09:25 编辑
最笨的扫描,
- int loops(int* p, int nums, int* top, int* id)
- {
- int i = 0,j=1,flag=nums;
- while (flag-1)
- {
- for (i = 0; i < nums; i++)
- {
- if (p[i])
- {
- if (j%3==0)
- {
- p[i]=0;
- flag--;
- if (1==flag)break;
- }
- j++;
- }
- }
- //if (1==flag)break;
- }
- for (i = 0; 0==p[i]; i++);
- *id=1==nums?1:i+1;
- *top=1==nums?1:j+1;
- return i;
- }
- int main(void)
- {
- int i=0,n=0,top=0,id=-1;
- scanf("%d",&n);
- int* num=(int*)malloc(sizeof(int)*n);
- for (i = 1; i <n; i++)
- {
- num[i]=1;
-
- }
-
- loops(num,n,&top,&id);
- printf("%d %d",top ,id);
- return 0;
- }
复制代码- int loops(int* p, int nums, int* top, int* id)
- {
- int i = 0,j=1,flag=nums;
- while (flag-1)
- {
- for (i = 0; i < nums&&(flag-1); i++)
- {
- if (p[i])
- {
- if (j%3==0)
- {
- p[i]=0;
- flag--;
- //if (1==flag)break;
- }
- j++;
- }
- }
- //if (1==flag)break;
- }
- for (i = 0; 0==p[i]; i++);
- *id=i+1;
- *top=j;
- return i;
- }
复制代码 |
|