|
发表于 2021-11-24 17:08:58
|
显示全部楼层
本楼为最佳答案
本帖最后由 jhq999 于 2021-11-24 17:19 编辑
别忘了先从小到大排序
- int main()
- {
- int n[]={1,2,3,4,5,8,10,14,15,17,20};
- int num=11,len=11;
- //scanf("%d",&n);
- while(1)
- {
- int i,j;
- for( i=0;i<len;i++)
- {
- if(n[i]*2>n[len-1])
- break;
- }
- int fj=i,flag=1;
- for(i=fj-1;i>=0;i--)
- {
- for(j=fj;j<len;j++)//j++
- {
- if(n[j]>=2*n[i])
- {
- flag=0;
- num--;
- n[i]=n[j]=0;
- break;
- }
- }
- }
- int tmp=len;
- j=0;
- while(n[j++]);
- j--;
- for(i=j;i<tmp;i++)
- {
- if(n[i]==0)
- {
- len--;
- }
- else
- {
-
-
- n[j++]=n[i];
- n[i]=0;
- }
-
- }
- if(flag) break;
- }
- printf("%d",num);
- return 0;
- }
复制代码 |
|