附加题

/*
附加题:
用N个自然数顺序组合成一个多位数,现要求从中删除M个数字,M<N,使剩下的数为最大。
例如对于16389,输入2,输出689。
98765123456987873321
99887332
m=12

473659871098760871989812759864817921846598237245878752984
47365 98710 98760 87198 98127 59864 81792 18465 98237 24587 87529 84
21
76987 19876 87998 79868 92869 87887 59840 0
76987 19876 87998 79868 92869 87887 5984
      9     9        9  98     9864 81792 18465 98237 24587 87529 84
47365 98710 98760 87198 98127 59864 81792 18465 98237 24587 87529 84
      9     9        9  98     9864 81792 18465 98237 24587 87529 84
 7 6  9871  9876  87 9  98  7  9868    92  8 6  98  7    8  875 9 84

*/
#include<stdio.h>
int main()
{
 int a[1000]={-1},m,n,i,j;
 char c;
 for(n=0;;n++)
 {
  scanf("%c",&c);
  if(c=='/n')
  {
   break;
  }
  a[n]=c-'0';
 }
 for(;m>n;)
 {
  scanf("%d",&m);
 }
start: 
 while(m>0)
 {
  for(i=0;i<n-1;i++)
  {
   if(a[i]==-1)
   {
    continue;
   }
   j=i+1;
   while(a[j]==-1)
   {
    j++;
   }
   if(j>=n)
   {
    break;
   }
   if(a[i]<a[j])
   {
    a[i]=-1;
    m--;
    goto start;
   }
  } 
  goto end;  
 }
end: 
 for(i=0;i<n-m;i++)
 {
  if(a[i]!=-1)
  {
   printf("%d",a[i]);
  }
 }
 printf("/n");
 return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值