一定要认真审题 “去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数” 也就是说
输入:7893400 4 输出:300 (00在原顺序中位于3后边)
输入:7890034 4 输出:3 (003的00不会输出)
把要修改的数字当做字符串输入,就可以把每一位数保存在数组里了
若各位数字递增,就删除最后一个数字,否则删除第一个递减区间的首数字
#include<cmath>
#include<iostream>
#include<cstring> //调用strlen函数
#include<cstdlib>
#include<cstdio>
using namespace std;
int main()
{
char n[1000000];
int k,i;
scanf("%s",n);
cin>>k;
int len=strlen(n); //strlen函数计算数组长度
for(i=1;i<=k;i++)
{
for(int j=0;j<=len-1;j++)
if(n[j]>n[j+1])
{
for(int s=j;s<=len-1;s++)
n[s]=n[s+1];
break;
}
len--;
}
i=0;
while(i<=len-1&&n[i]=='0') i++; //首位为零空掉
if(i==len) printf("0"); //若删完后只剩下0,输出0
else
for(int j=i;j<=len-1;j++) //从首位非零数字开始输出
cout<<n[j];
return 0;
}