#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
char num[1100];
int n,m;//m是删除多少位数
int i,j,k;
while( scanf("%s%d",num,&m)!=EOF )
{
n=strlen(num);
for(j=1;j<=m;j++)
{
for(i=0;i<n-1; )
{
if(num[i+1]>=num[i])
i++;
else
break;
}
for(k=i;k<n-1;k++)
num[k]=num[k+1];
}
for(i=0;i<n-m;i++)
printf("%c",num[i]);
printf("\n");
}
return 0;
}
<pre name="code" class="cpp">#include<iostream>
#include<string>
using namespace std;
int main()
{
string n;
int s,i,x,l,m;
while(cin>>n>>s)
{
i=-1,m=0,x=0;
l=n.length();
while(x<s&&m==0)
{
i++;
if(n[i]>n[i+1])//出现递减,删除递减的首数字
{
n=n.erase(i,1);
x++;// x统计删除数字的个数
i=-1;//从头开始查递减区间
}
if(i==l-x-2&&x<s)
m=1;//已经无递减区间,m=1脱离循环
}
cout<<l-s+x<<endl;
cout<<n.substr(0,l-s+x);//只打印剩下的左边l-(s-x)个数字
}
}